令和2年度 10月 応用情報技術者試験 午前 問47
テクノロジ/アルゴリズム次の流れ図において, ① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥ の順に実行させるために,①において m と n に与えるべき初期値 a と b の関係はどれか。ここで,a,b はともに正の整数とする。

出典:令和2年度 10月 応用情報技術者試験 午前 問47
- アa = 2b
- イ2a = b
- ウ2a = 3b
- エ3a = 2b
正解:エ
解説
この流れ図はユークリッドの互除法(減算版)で,m と n が等しくなるまで大きい方から小さい方を引きます。指定された経路をたどると,まず ⑤(m<n なので n←n−m)で n=b−a となり,次に ④(m>n なので m←m−n)で m=a−(b−a)=2a−b となります。その後 ② で m=n となるので,2a−b=b−a すなわち 3a=2b が成り立ちます。
選択肢ごとの解説
- ア誤り。a=2b では最初の ② の直後に m>n となり,③ から ⑤ ではなく ④ へ進むので,指定された経路になりません。
- イ誤り。2a=b のとき,例えば a=1,b=2 では ⑤ で n=1 となり次の ② で m=n となるため,③→④ を通らずに ⑥ へ進んでしまいます。
- ウ誤り。2a=3b では常に a>b(a=1.5b)となるため,最初の ③ で ⑤ ではなく ④ へ進み,指定された経路になりません。
- エ正しい。3a=2b(例えば a=2,b=3)とすると,⑤ で n=1,④ で m=1 となり,次の ② で m=n となって ⑥ へ進みます。