情報処理安全確保支援士試験 情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ3: 次の流れ図の処理で,終了時の x に格納されているものはどれか。ここで,与えられた a,b は正の整数であり,mod(x,y) は x を y で割った余りを返

情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ
Q 33 / 30
次の流れ図の処理で,終了時の x に格納されているものはどれか。ここで,与えられた a,b は正の整数であり,mod(x,y) は x を y で割った余りを返す。
流れ図:開始→x←a,y←b→ループ1(y=0)→t←mod(x,y),x←y,y←t→ループ1→終了。ユークリッドの互除法を表すフローチャート。

問題本文

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

選択肢

  • .a と b の最小公倍数
  • .a と b の最大公約数
  • .a と b の小さい方に最も近い素数
  • .a を b で割った商

正解

. a と b の最大公約数

解説

流れ図はx←a,y←bとし、y=0になるまで t←x mod y、x←y、y←t を繰り返す。これはユークリッドの互除法そのもので、終了時のxには最大公約数(GCD)が残る。よってイが正解。約分や暗号(RSAの鍵生成等)でも用いられる、剰余を使った古典的かつ高速なGCD算法である。

選択肢ごとの解説

  • .最小公倍数は GCD を求めた後に a×b/GCD で算出するもので、この手続きの結果ではなく誤り。
  • .剰余を繰り返すユークリッドの互除法であり、終了時xに最大公約数が入る正解。
  • .素数判定や探索の処理は含まれておらず、最も近い素数は求まらないため誤り。
  • .商ではなく剰余(mod)を用いて反復しており、a÷bの商にはならず誤り。

情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ過去問一覧へ戻る・問3