令和5年度 I-2-2

科目: 基礎科目 / 分野: 情報・論理 / 年度: 令和5年度

I-2-2 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

ユークリッド互除法による最大公約数の計算アルゴリズムを表す流れ図の分岐条件(ア・イ)と出力する値(ウ)を求める問題。

解説

この問題で問われていること

自然数A, Bの最大公約数を求めるユークリッド互除法のアルゴリズムを表す流れ図において、余りRを0と比較した後の分岐条件(ア: 継続する条件、イ: 終了する条件)と、終了時に出力する値(ウ)を求める問題。

解き方

① 互除法: 余りRが0でない間は「A←B、B←R」をくり返し、R=0になったときのBが最大公約数
② ア(続ける側)=R≠0、イ(終わる側)=R=0、ウ(出力)=B
③ ④。⑤のRは終了時点で0

正解が正しい理由

流れ図では、RをAをBで割った余りとして計算した後、Rと0を比較し、(ア)の分岐では「A←B, B←R」と更新して計算を継続し、(イ)の分岐では(ウ)を出力して終了する。ユークリッド互除法は余りが0になるまで割り算を繰り返すアルゴリズムであるため、余りR≠0のときは計算を継続する必要があり、ア=R≠0である。一方、R=0になった時点で終了して結果を出力するため、イ=R=0である。R=0になった時点でのBの値が、GCD(A,B)=GCD(B,R)の関係より最大公約数そのものであるため、出力する値はウ=Bである。したがってア=R≠0、イ=R=0、ウ=Bの組合せである④が正しい。

各選択肢について

覚えるべきポイント

ユークリッド互除法のアルゴリズムでは、余りが0になるまで「A←B, B←R」の更新と剰余計算を繰り返し、余りが0になった時点でのBの値が最大公約数となる。流れ図の分岐を読み解く際は、ループを継続する条件と終了する条件を取り違えないよう注意する。

キーワード: ユークリッド互除法、フローチャート、最大公約数、情報・論理