図1のように二つの正の整数 A1, A2を入力すると, 二つの数値 B1, B2を出力するボックスがある。B1は A2と同じ値であり, B2は A1を A2で割った余りである。図2のように, このボックスを2個つないだ構成において, 左側のボックスの A1として49, A2として11を入力したとき, 右側のボックスから出力される B2の値は幾らか。
平成31年度 春期 ITパスポート試験 問71
この問題の解説と、これまでの解答の記録です。
問71
頻出度★★☆
解説
問 71
- ア
正解 ボックスは入力 (A1, A2) に対し、B1 には A2 をそのまま、B2 には A1 を A2 で割った余りを出力する。まず左のボックスは A1=49、A2=11 なので、B1=11、B2=49÷11 の余り=5 を出力する。図2 の配線では、左のボックスの出力 (B1, B2)=(11, 5) が、そのまま右のボックスの入力 (A1, A2)=(11, 5) につながる。したがって右のボックスは A1=11、A2=5 で計算し、求める B2 は 11÷5 の余り=1 となる。よって右のボックスから出力される B2 の値は 1 であり、ア が正しい。
不正解イ
2 は、右のボックスの計算 11÷5 の「商」(2 あまり 1) を取った値。このボックスが出力するのは商ではなく「余り」なので誤り。正しくは余りの 1。
不正解ウ
4 は、左のボックスの計算 49÷11 の「商」(4 あまり 5) を取った値。ボックスは商ではなく余りを出力し、しかも問われているのは右のボックスの出力なので二重に誤り。
不正解エ
5 は左のボックスの B2 (49÷11 の余り=5)、すなわち途中結果。設問が問うのは右のボックスの B2 なので、1 段目で止めてしまった誤り。右のボックスでさらに 11÷5 の余り=1 まで計算する必要がある。
ここがポイント
- ボックスは (A1, A2) を入力すると (B1=A2、B2=A1 を A2 で割った余り) を出力する。これはユークリッドの互除法の 1 ステップに相当する処理である。
- ボックスを 2 個直列につないだ構成では、左のボックスの出力がそのまま右のボックスの入力になる。順に計算し、最終段のボックスの出力を読み取ること。
用語