◆広島県 清川 育男 さんからの解答。
2つの数をN,M。N>Mとする。
NをMで割る。剰余をR1とする。
もしR1=0ならMが最大公約数。
MをR1で割る。剰余をR2とする。
もしR2=0ならR1が最大公約数。
R1をR2で割る。
剰余をR3とする。
もしR3=0ならR2が最大公約数。
R2をR3で割る。
剰余をR4とする。
もしR4=0ならR3が最大公約数。
このように、Rn-1=1。Rn=0になるまで行う。
M>R1>R2>R3>・・・>0。
例えば、
1523/814=1...709。
2)N=24。M=18とする。
24/18 =1...6。
1)N=1523、M=814とする。
814/709=1...105。
709/105=6...79。
105/79 =1...26。
79/26 =3...1。
26/1 =26。最大公約数は、1。
18/6=3。最大公約数は、6。
【コメント】
この方法は「ユークリッドの互除法」といいます。
NとMの最大公約数は、「M」と「NをMで割った余り」の最大公約数に等しいということを使った方法です。
同じように、MとN−Mの最大公約数を求めてもよいのですが、数字が大きいときに非常に時間がかかったので(暴走した場合もありました)、このプログラムは余りにしてあります。
◆石川県の中学校3年生 ☆ゆう さんからの解答。
素因数分解をするのだと思う。
例
2│12,42
└─────
3│ 6,21
└─────
2, 7
となる。
この時の左側の全ての数(2.3)の積(6)で求められる。
上の例を参照...
ちなみに最小公倍数は、左側の全ての数(2.3)の積(6)と最後に出た数(2.7)の積(14)の積(6×14=84)で求められる。
小学校5年生で習ったものです。
【コメント】
小学校5年生で習っているのですか。
知りませんでした。
この方法は人間が求めるには、最もよい方法ですね。
◆大分県の小学生 べっち さんからの解答。
まず、小さい数から、大きい数をひく
(60−36=24)
次に、引く数から答えをひく
(36−24=12)
それを繰り返す
(24−12=12)
(12−12=0)
右のように60と36の最大公約数は12です
感想:これはすじみちで見ました
◆神奈川県の小学生 てつろー さんからの解答。
例:48と64の最大公約数の求め方。
(これは僕が5年生のときに習ったやり方です)
@48の数の約数を求めます。
例:
48÷1=48 ↑ここ↑が48の約数。 48÷5=9.6 ↑小数になったらダメ。48の約数 1,2,3,4,6,8,12,16,24,48
Aさっき求めた、48の約数の中から、64の約数と違うものを消していきます。
残ったもの 1,2,4,8,16
B残ったものの一番大きいものが、最大公約数です。
(つまり16。)
※最小公倍数と間違えないようにしましょう。