計算機プログラミング I Aクラス 中間試験

計算機プログラミング I A クラス 中間試験 2014
出題: 井上純一 (情報科学研究科棟 8-13)
実施日: 平成 26 年 6 月 20 日
注意: 問題は 1 問. 答案用紙裏面も用いてよいが, その場合には「裏面に続く」と明記する. 試験
開始後 30 分経過するまでは退出できないので注意すること. 持ち込み可.
問題
任意の整数を A とし, A 以下の任意の正の整数 j に対して
q (j) = 2 × j
を定義して「偶数」を作る.
このとき, q (j) , j = A, A − 1, · · · , 1 に含まれる素因数 2 の総数を C(A) としよう. 例えば, A = 5
のときには, j = 5, 4, 3, 2, 1 であり, q (j) に含まれる素因数 2 の個数を c(q (j) ) とすると
q (5)
= 2 × 5, 従って, c(q (5) ) = 1
q (4)
= 2 × 22 , 従って, c(q (4) ) = 3
q (3)
= 2 × 3, 従って, c(q (3) ) = 1
q (2)
= 2 × 2, 従って, c(q (2) ) = 2
q (1)
= 2 × 1, 従って, c(q (1) ) = 1
となるから
C(5) =
5
∑
c(q (i) ) = 1 + 2 + 1 + 3 + 1 = 8
i=1
が得られる. このとき以下の問いに答えよ.
(1) キーボードから整数 a を入力すると, a を 2 で割った余りを画面に出力するプログラムを書け.
(2) キーボードから A の値を入力すると, C(A) の値を出力するプログラムを書け.
※ 解答例を 1 部ずつ持ち帰ること.
1