自然数は、1と素数と合成数(1とその数自身以外の約数を持つ数)から構成され、数が大きくなるにつれ、ある素数と次の素数までの間隔は大きくなるようです。そしてこの素数が存在しない区間は、任意の長さ(100万でも10億でも!)のものがあり、素数砂漠と呼ばれているのだそうです。
そんな素数砂漠に行ってみたいと思いました。
wikipedia:自然数 wikipedia:素数 wikipedia:合成数
- 作者: コンスタンス・レイド,芹沢正三
- 出版社/メーカー: 講談社
- 発売日: 1971/08/16
- メディア: 新書
- 購入: 32人 クリック: 537回
- この商品を含むブログ (16件) を見る
プログラム
#!/usr/bin/env python import sys import math if len(sys.argv) < 2 or sys.argv[1] < 2: sys.stderr.write("Usage: " + sys.argv[0] + " number (number > 2)\n") sys.exit(1) i = int(sys.argv[1]) while 1: is_composite_number = 0 j = math.floor( i / 2 ) while is_composite_number == 0 and j > 1: if (i % j) == 0: is_composite_number = 1 j -= 1 if is_composite_number == 1: print "." else: print i i += 1
あってるだろうか..
実行してみる
$ ./prime_number.py 2 | more
2
3
.
5
.
7
.
.
.
11
.
13
.
.
.
17
.
19
.
.
.
23
.
.
.
.
.
29
.
31
.
.
.
.
.
37
.
.
.
41
.
43
.
.
.
47
.
.
.
.
.
53
.
.
.
.
.
59
.
61
.
.
.
.
.
67
.
.
.
71
.
73
.
.
.
.
.
79
.
.
.
83
.
.
.
.
.
89
.
.
.
.
.
.
.
97
.
.
.
101
.
103
.
.
.
107
.
[Ctrl+C]
107まではあってる!
見どころ
◇双子素数 wikipedia:双子素数
. . 11 . 13 . . .
. 1087 . . . 1091 . 1093 .
◇四つ子素数 wikipedia:四つ子素数
. . 79691 . 79693 . . . 79697 . 79699 . .
素数砂漠までは遠い
. . 137957 . . . . . . . . . . . . . . . . . . . . . . . . . 137983 . . . . . . . . . 137993 . . . . . 137999 . . . . . . . 138007 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138041 .