問 5(提出プログラム名:ex0305a.c)
1 つの整数 n を読み込み,2 以上 n 未満の n の約数がいくつあるか(その個数)を出力するプログラムを作成しなさい.ただし,必ず while 文を使うこと(for 文を使って書く方が簡単かもしれないが,ここでは while 文を使うこととする).
なお,n は 3 以上の整数であると仮定してプログラムを作ってよい.
提出するソースファイル(ソースプログラム)のファイル名は ex0305a.c としなさい.
【ヒント】
求められている処理を実現する手順(アルゴリズム)として以下のものが考えられます:
(求める約数の個数を cnt として)
① cnt = 0 とし, k = 2 とする(ただし,cnt と k は int 型の変数)
② k < n である限り以下の③,④を繰り返す(while 文で書く):
③ k が n の約数ならば cnt++; を行う.(※ n を k で割った余りが 0 ならば,k は n の約数です)
④ k++;
⑤ cnt を出力する.(←ここは while 文による繰り返しが終わった後)
- 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
n を入力してください:11 2 以上 11 未満の約数は 0 個です⏎
- 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
n を入力してください:24 2 以上 24 未満の約数は 6 個です⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
(例1)約数の個数が違っている.
(例2)表示が「2 以上 n 未満の約数は」というアルファベット表記になっている.
■ 「n を k で割った余り」を調べるところで誤って「k を n で割った余り」を調べてしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 問 4 (ex0304a.c) ]
ミスが無いことを確認したら次の問題へ → [ 問6 (ex0306a.c) ]