問 8(提出プログラム名:ex1108.c)
このプログラム(ex1108.c)をダウンロードし,その中の関数 to_prime を完成させなさい.
このプログラムは,入力として与えられた整数を int 型変数 x に格納した後,
その変数の値を x 以上で最小の素数へ書き換えて出力することを目的としている.
関数 to_prime はその書き換えを担当する関数である.
なお,ex1108.c の中ではあらかじめ素数判定のための is_prime が用意してある.
ここでは,x は 2 以上の整数と仮定してプログラムを作って良いものとする.
【関数 to_prime での処理内容】(次の処理を行うだけである)
x が素数でない限り,x++; を繰り返す.
ここで「x が素数でない」という繰り返し条件を書く必要があるが,
これは !is_prime(x) と書くだけでよい.記号 ! が条件の否定を意味する.
(注:実際には x と直接書くことはできないのでポインタを使うこと)
この問題では関数 main と関数 is_prime の内容は一切書き換えないこと.
【注意】
関数 to_prime は戻り値を持たないので戻り値型は void と宣言してある.
これを変更してはいけませんし,戻り値を持たせても(return を書いても)いけません.
- 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
2 以上の整数を入力してください:9 9 以上の最小の素数は 11 です.⏎
- 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
2 以上の整数を入力してください:2 2 以上の最小の素数は 2 です.⏎
- 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
2 以上の整数を入力してください:101 101 以上の最小の素数は 101 です.⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
■ 関数 to_prime の中で if 文を使ったりしていて必要以上に複雑になっている.
■ main 関数を書き換えてしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない)
← [ 問 7 (ex1107.c) ]
ミスが無いことを確認したら次の問題へ → [ 問 9 (ex1109.c) ]