演習問題 1 (素数 - prime number)

2以上の整数を入力して, その数が素数かどうかを判定する プログラムを作ってみよう. (素数とは, 1 とその数以外に約数を持たない数のこと - 念のため.)

といっても, いきなりこれでは難しいかも知れないので, 順をおって「段階的に」プログラムを作っていこう. (必ずしも下記のステップをそのとおり進める必要はない; 自分ができそうなレベルを やってみて, 難しかったら一つ前に戻ると良いだろう.)

  1. 割算の余り(剰余)の出力 (「基礎プロくん」を使うなら, 課題 1)
    まず, 自然数 j をひとつ入力して, 1 から j までの整数で j を割った 余りを順番に出力するプログラムを作ってみよう. (剰余を求める演算子は「%」だった - 念のため.) 入力として 6 を与えると
    6
    出力はこうなる:
    6 6 mod 1 -> 0 6 mod 2 -> 0 6 mod 3 -> 0 6 mod 4 -> 2 6 mod 5 -> 1 6 mod 6 -> 0
    (例によって出力の最初に入力データ「6」を表示している.)

  2. 約数だけを出力 (「基礎プロくん」を使うなら, 課題 2)
    前のプログラムを改良して, 約数だけを出力するようにしてみよう. 同じく 6 を入力すると
    6
    出力はこんな感じ:
    6 1 2 3 6
    (約数かどうかの判定は, 剰余が0かで決定できる - 念のため)

  3. 約数の個数を出力 (「基礎プロくん」を使うなら, 課題 3)
    前のプログラムをさらに改良して, 約数の個数を出力するようにしてみよう. 同じく 6 を入力すると
    6
    出力はこんな感じ:
    6 4
    約数の個数を調べるには, 個数をカウントする変数を新しく宣言して, 約数が見つかるたびにそれを1ふやしていけばよい. (いつもの数え方)

  4. 素数かどうかを出力 (「基礎プロくん」を使うなら, 課題 4)
    前のプログラムをさらに改良して, 最初に入力した数 j が 素数かどうかを判定するプログラムにしよう. 素数だったら「prime」, 素数でなかったら「not prime」と 出力させる. 同じく 6 を入力すると
    6
    出力はこんな感じ:
    6 not prime
    (約数の個数がわかったから, 素数かどうかの判定は容易.)

[page 2] prev index next