自然数Nの約数を小さい順に列挙し,最後に約数の個数を求めるため,次のような〔プログラム〕を作った。
ここで,INT(X)はXを超えない最大の整数を表す関数である。
〔プログラム〕
100 INPUT N
110 LET X=0
120 FOR A=1 TO N
130 LET B=(ア)
140 IF B<>0 THEN (イ)
150 PRINT A
160 (ウ)
170 NEXT A
180 PRINT "N=";N;"のとき,約数は全部で";X;"個である"
190 END
(1) (ア)に当てはまるものを,次の①~⑥のうちから一つ選べ。
① N*INT(A/N) ② N-N*INT(N/A) ③ N-A*INT(N/A)
④ N-INT(N/A) ⑤ A*INT(A/N) ⑥ N*INT(N/A)
(2) (イ),(ウ)に当てはまるものを,次の①~⑨のうちから一つずつ選べ。
① GOTO 150 ② GOTO 160 ③ PRINT B
④ PRINT X ⑤LET X=A ⑥LET X=B
⑦ LET X=X+1 ⑧LET X=A+1 ⑨LET X=B+1
(3)〔プログラム〕を実行して,変数Nに18を入力したとき,150行は(エ)回実行され,
最終的に下から4行目に出力されている数字は(オ)である。
(4)〔プログラム〕を変更して,約数の総和も求めるようにしたい。
そのためには,〔プログラム〕の180行を削除して,次の3つの行を挿入すればよい。
115 (カ)
155 (キ)
180 PRINT "N=";N;"のとき,約数は全部で";X;"個で,その総和は";K;"である"
(カ),(キ)に当てはまるものを,次の①~⑨のうちから一つずつ選べ。
① LET K=0 ② LET K=1 ③ LET K=N-1
④ LET K=N ⑤ LET K=K+1 ⑥ LET K=K+A
⑦ LET K=K+X ⑧ LET K=INT(N/A) ⑨ LET K=A*INT(N/A)
変更後のプログラムを実行して,変数Nに42を入力したとき,
180行で出力されるXの値は(ク)で,Kの値は(ケコ)である。
最終更新:2011年02月22日 07:45