正答2
解説
正解は2です。
流れ図では、最初にxにa、yにbを代入します。
その後、y=0になるまで「tにxをyで割った余りを入れ、xにy、yにtを入れる」処理を繰り返します。
これはユークリッドの互除法そのものです。
【処理の流れ】
例として a=12、b=8 で追跡します。
開始時は x=12、y=8 です。
1回目は t=mod(12,8)=4 となり、x=8、y=4 になります。
2回目は t=mod(8,4)=0 となり、x=4、y=0 になります。
y=0 になったのでループを抜け、x=4 が残ります。
4は12と8の最大公約数です。
【選択肢別解説】
1:× 12と8の最小公倍数は24ですが、終了時のxは4です。
最小公倍数を求めるには、a×bを最大公約数で割る処理が別に必要です。
2:○ 余りを取って割る数と割られる数を入れ替える処理を繰り返すのはユークリッドの互除法です。
余りが0になったときの割る数(x)が最大公約数になります。
3:× 素数を判定する処理は流れ図に含まれていません。
例でもxは4となり、素数ではありません。
4:× aをbで割った商は12÷8=1ですが、流れ図は余りしか使っていません。
終了時のxは商ではなく4です。
【ポイント】
ユークリッドの互除法は「mod(x,y)を求め、xにy、yに余りを入れる」の3行が定番の形です。
ループ端に書かれた y=0 はループを終える条件である点も確認しておきましょう。