レポートのサンプル(素数を求めるプログラム)

レポートのサンプル(素数を求めるプログラム)
学籍番号 04T599X
氏 名 中村 太郎
1.課題
入力した自然数分だけ素数を求めるプログラムを作成する。素数判定の部分を関数とし、求める個
数は最大でも99個とする。範囲を越える入力はエラーとする。
2.目的
関数を利用する際のパラメータの受渡しと返り値の扱い方と、関数の書き方について学習する。ま
た、素数を求める方法について様々な方法を考え、より効率的に素数を求める。できる限り関数を用
いることによってグローバル変数を少なくする。素数は数学的にも工学的にも広範に利用される可能
性が高い。素数を求めるプログラムを実現することは、素数を利用する理論に対しての手段を構築し
たといえる。
3.理論
素数を求めるとということは、ある数が与えられた時にその数が素数かどうかを判定することであ
る。このため大きく分けて、2つの点を考慮に入れなければならない。ここでは与えられた数をmとす
る。
3.1 素数の判定
素数の定義は1とその数自身以外では割り切れないと言うことである。このため判定は、基本的に
は2からmまで順に割って、途中割り切れたら素数でないといえる。しかしこれは効率が悪い。単純に
考えて、与えられた数の半分まで試せば十分である。つまり、m=97の場合、48以上の数で割り切れ
るのは97以外存在しない。もう一歩押し進めて考えると、mにm以外の約数があれば、m=f gとでき
る。fとgが約数であるならばf gの時、f f f g=mとなる。このため、割る数の上限はmの平方根と
なる。また、2以外の偶数で調べる必要はない。2の倍数で割れるのであれば、当然2でも割れるから
である。
3.2 素数の種の作成
素数を判定するためには基となる数値(ここでは種と表現)を与えなくてはならない。一つだけなら
標準入力などがあるが、複数個を自動的に求めなくてはならない。最も基本的な求め方は、1から順
に1づつ増加させていくやり方である。ただし、偶数は2以外素数ではないため、2以外は奇数のみを
調べればよい。
(以下、省略)