次の流れ図は,2数A,Bの最大公約数を求めるユークリッドの互除法を,引き算の繰返しによって計算するものである。
Aが876,Bが204のとき,何回の比較で処理は終了するか。
正答4
解説
正解は4です。
図の流れ図は、LとSを比較し、大きい方から小さい方を引く操作を、両者が等しくなるまで繰り返します。
比較の結果が「>」ならL←L-S、「<」ならS←S-L、「=」ならA、B、Lを出力して終了します。
比較のたびに回数を数え、等しいと判定した最後の比較も1回に含めます。
【処理の流れ】
1回目:L=876>S=204なので、L=876-204=672になります。
2回目:672>204なので、L=468になります。
3回目:468>204なので、L=264になります。
4回目:264>204なので、L=60になります。
5回目:60<204なので、S=204-60=144になります。
6回目:60<144なので、S=84になります。
7回目:60<84なので、S=24になります。
8回目:60>24なので、L=36になります。
9回目:36>24なので、L=12になります。
10回目:12<24なので、S=12になります。
11回目:L=S=12なので、最大公約数12を出力して終了します。
【選択肢別解説】
1:× 4回は、最初にLから204を引き続ける間の比較の回数にすぎません。
その後もSから引く処理などが続きます。
2:× 9回目の比較が終わった時点では、L=12、S=24で、まだ等しくなっていません。
3:× 10回目の比較の後でL=S=12になりますが、等しいことを判定する11回目の比較が必要です。
4:○ 上のとおり、11回目の比較でLとSが等しいと判定され、処理が終了します。
【ポイント】
引き算による互除法では、最後に「等しい」と判定する比較も回数に含めることを忘れないようにします。
876=12×73、204=12×17なので、最大公約数が12であることも確かめられます。