練習 [4] for 文(3/5)

練習 3(提出プログラム名:p0403a.c)

以下の例のように,約数の一覧表示と素数判定を行うプログラムを p0403a.c として作りなさい.
なお,この問題では必ず for 文を使うこととする.
このプログラムでは最初に整数 n を読み込み,1 の約数,2 の約数,…,n の約数を小さいものから順に出力している.その際,素数については行末に「### 素数」と出力している.
ここでは n は 1 以上の整数であると仮定してプログラムを作ってよい.

【ヒント】
「整数 i が素数である」⇔「整数 i の約数がちょうど 2 個である」
それゆえ,整数 i の約数を表示する際に個数も数えておいて,その個数が 2 に等しい時だけ特別に「### 素数」という表示を追加するとよいです.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
    【要注意】### 素数」という表示がその左の数字 1 にくっついてしまわないよう注意せよ.
    (※「1」と「###」の間には半角のスペースが入っているので間違えないこと)
n を入力してください:8
1 の約数 = 1
2 の約数 = 2 1 ### 素数
3 の約数 = 3 1 ### 素数
4 の約数 = 4 2 1
5 の約数 = 5 1 ### 素数
6 の約数 = 6 3 2 1
7 の約数 = 7 1 ### 素数
8 の約数 = 8 4 2 1
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
n を入力してください:50
1 の約数 = 1
2 の約数 = 2 1 ### 素数
3 の約数 = 3 1 ### 素数

... (中略) ...

47 の約数 = 47 1 ### 素数
48 の約数 = 48 24 16 12 8 6 4 3 2 1
49 の約数 = 49 7 1
50 の約数 = 50 25 10 5 2 1
  • 【プログラムの実行例】(その3)赤字は実行時にキーボードから入力する内容
n を入力してください:1230
1 の約数 = 1
2 の約数 = 2 1 ### 素数
3 の約数 = 3 1 ### 素数

... (中略) ...

1228 の約数 = 1228 614 307 4 2 1
1229 の約数 = 1229 1 ### 素数
1230 の約数 = 1230 615 410 246 205 123 82 41 30 15 10 6 5 3 2 1

【過去にあったミス(減点となり,やり直しを命じられる)】
■ 上の3種類の実行例と表示が微妙に違っている(きちんと確認していない).
 (例1)出力する記号が違っている(### になっていない).
 (例2)素数以外でも「### 素数」と表示させてしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習4 (p0404a.c) ]