戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2019年 春期 午前(科目A)07


問題文

次の流れ図は、2数A、Bの最大公約数を求めるユークリッドの互除法を、引き算の繰返しによって計算するものである。Aが876、Bが204のとき、何回の比較で処理は終了するか。
基本情報技術者 2019年 春期 午前(科目A) 問07の問題画像

選択肢

4
9
10
11(正解)

🔒 解説は解答すると表示されます

ユークリッドの互除法(引き算法)【午前解説】

正解の理由

正解:
流れ図は各ループで必ず「L : S」の比較を行い、比較の結果に応じて1回ずつ減算を行って戻る構造です。実際に値を追うと各比較ごとに減算が行われ、最後に等号となる比較が1回あり、合計11回の比較で終了します。

解法ステップ

  1. 初期化:L ← 876, S ← 204。比較回数カウントを0とする。
  2. 比較を1回行う(カウント+1)。876 > 204 なので L ← 876 − 204 = 672。
  3. 再度比較(カウント+1):672 > 204 → L ← 468。
  4. 比較(カウント+1):468 > 204 → L ← 264。
  5. 比較(カウント+1):264 > 204 → L ← 60。 ここまで比較4回、減算4回。
  6. 比較(カウント+1):60 < 204 → S ← 204 − 60 = 144。
  7. 比較(カウント+1):60 < 144 → S ← 84。
  8. 比較(カウント+1):60 < 84 → S ← 24。 ここまで比較7回、減算7回。
  9. 比較(カウント+1):60 > 24 → L ← 36。
  10. 比較(カウント+1):36 > 24 → L ← 12。 ここまで比較9回、減算9回。
  11. 比較(カウント+1):12 < 24 → S ← 12。 ここまで比較10回、減算10回。
  12. 比較(カウント+1):12 = 12 → 等号判定で終了。合計比較回数は11回。
(簡略にまとめると、減算は10回行われ、最後の等号比較1回を含めて比較は11回です。)

選択肢別の誤答解説

  • ア: 4
    876 を 204 で4回引いて 60 になる部分だけを見て「4回で終わる」と誤認。以降の処理を無視した誤りです。
  • イ: 9
    商を使って 4 + 3 + 2 = 9 とまとめて考えた誤り。最後の群で等しくなるため、単純に商の和を比較回数と同一視できません。
  • ウ: 10
    実際の減算回数(10)を比較回数と混同した誤り。問題は「比較が何回行われるか」を問うため、最後の等号判定を含める必要があります。
  • エ: 11(正解)
    上の手順で示した通り、減算10回に最後の等号比較1回を加えた合計が比較回数となります。

よくある誤解

  • 減算回数だけを数えて「10回だからウ(10)」とする誤り。問題は比較回数を問うため、最後の等号判定を含める必要があります。
  • 最初のグループ(876÷204=4)だけ見て「4回で終了=ア(4)」と早合点する誤り。以降の値のやり取りを追わないと誤ります。
  • 商を単純に足して9(4+3+2)としてしまう誤り(イ:9)。最後の群で途中で等しくなる場合があり、単純和だけでは比較回数になりません。

補足コラム

このフローチャートは“繰返し引き算”によるユークリッドの互除法(減算版)です。実装上は非効率で、通常は剰余演算()を使うことで同じ結果を定数時間に近い形で得られます。ただし今回の問題はフローチャートの動作そのもの(1回の比較ごとに1回減算)を正確に数える力が試されます。比較回数は「(実際に行われた減算回数) + 1(最後の等号判定)」で求められることが多い点を押さえてください。

FAQ

Q. 「比較」はどのタイミングでカウントしますか?
A. ひし形の判定(L : S)を行うたびに1回カウントします。等号が出て終了する判定もカウント対象です。
Q. 商でまとめて計算して良いですか?
A. まとめても良いですが、最後の群で等しくなって途中で止まる場合があるため、途中経過で等号が出るかどうかを確認して比較回数を調整してください。
Q. 減算回数と比較回数は常に「+1」の関係ですか?
A. このアルゴリズム(比較→減算→戻る)では、最終的に等号で停止するため「比較回数 = 減算回数 + 1」が成り立ちます。

関連キーワード: 最大公約数、ユークリッドの互除法、繰返し引き算、フローチャート、アルゴリズム、除算による短縮
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について