平成29年度春期 応用情報技術者試験 午前 問6

分野:アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語)|実際に出題されたIPA過去問題

次の流れ図の処理で,終了時のxに格納されているものはどれか。ここで,与えられたa,bは正の整数であり,mod(x,y)はxをyで割った余りを返す。

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  aとbの最小公倍数
  2.  aとbの最大公約数
  3.  aとbの小さい方に最も近い素数
  4.  aをbで割った商
解答・解説を見る

正解:イ

AI解説

正解はイ。この流れ図は、xとyの大きい方から小さい方の剰余を取る操作(mod)を、余りが0になるまで繰り返すユークリッドの互除法である。互除法は「aとbの最大公約数は、aをbで割った余りrとbの最大公約数に等しい」という性質を利用したアルゴリズムで、終了時のxには最大公約数(GCD)が格納される。 ア: 最小公倍数(LCM)を直接求めるアルゴリズムではない。なお最小公倍数は a×b÷最大公約数 で求められる。 イ: 正しい。剰余を取りながら値を入れ替えるユークリッドの互除法であり、終了時のxは最大公約数である。 ウ: 素数を求める処理(素数判定やエラトステネスのふるい)は含まれておらず、誤りである。 エ: 商を求めるだけなら繰返しは不要であり、mod演算を繰り返す本アルゴリズムの動作と一致しない。 💡 「mod(剰余)を余りが0になるまで繰り返す」流れ図・擬似コードを見たら即ユークリッドの互除法=最大公約数と判断してよい。具体値(例:a=12,b=8→4)でトレースして確認する習慣も有効。

出典:平成29年度 春期 応用情報技術者試験 午前 問6 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語))の過去問