午後のひとときに、数学の問題を解いてみる。
問題
1000以下の素数が250個以下であることを示せ。
シンキングタ~イム
素数判別として有名なものは、
エラトステネスの篩(ふるい)ですね。
1から求めたい値までを列挙して、
まずは1は素数でないので消す。
2は素数なので残して、それ以降の2の倍数を消す。
3が残っているので、3は素数となり、それ以降の3の倍数を消す。
5が残っているので、5は素数となり、それ以降の5の倍数を消す。
…
31が残っているので、31は素数となり、それ以降の31の倍数を消す。
これで、1000までの素数判定は終わっている。
この方法で地道にやっていっても良いのだが、これでは時間がかかりすぎる。
では、どうするのか。
エラトステネスの考え方で、素数の個数を数えるのではなく、素数ではない合成数の個数を数える。
つまり、
1000以下の合成数が750個以上であることを示せればよい。
1000以下で2の倍数の個数は、
[1000/2] = 500
とガウス記号を使って求めることが出来るが、ここには素数の2も含まれるため、
500 - 1 = 499個の合成数を見つけることが出来たが、750個にはまだまだ及ばない。
1000以下で2や3の倍数の個数は、
[1000/2] + [1000/3] - [1000/(2*3)] = 500 + 333 - 166 = 667
667 - 2 = 665個の合成数を見つけること出来たが、750個にはまだまだ及ばない。
1000以下で2や3や5の倍数の個数は、
[1000/2] + [1000/3] + [1000/5]
- ([1000/(2*3) + [1000/(2*5)] + [1000/(3*5)] )
+ [1000/(2*3*5)]
= 500 + 333 + 200 - ( 166 + 100 + 66 ) + 33
= 734
734 - 3 = 731の合成数を見つけることが出来たが、750個にはまだ及ばない。
1000以下で2や3や5や7の倍数の個数は、
[1000/2] + [1000/3] + [1000/5] + [1000/7]
- ([1000/(2*3) + [1000/(2*5)] + [1000/(2*7)] + [1000/(3*5)] + [1000/(3*7)] + [1000/(5*7)])
+ ([1000/(2*3*5)] + [1000/(2*3*7)] + [1000/(2*5*7)] + [1000/(3*5*7)])
- [1000/(2*3*5*7)]
= 500 + 300 + 200 + 166 - (166 + 100 + 71 + 66 + 47 + 28) + (33 + 23 + 14 + 9) - 4
= 768
768 - 4 = 764
なので、
1000以下の素数の個数は、
1000 - 764 = 236個以下であることを示せた。
Q.E.D.
最初から2、3、5、7のベン図で取り掛かっていれば、それほど面倒ではない。
では、どういうことをすれば、2、3、5、7のベン図で事足りるかという見切りが出来るのか。
2、3、5、7の最小公倍数は210です。
210を定数倍して1000以上になるには、5倍して1050です。
つまり、
1050 = 2 * 3 * 52 * 7
と素因数分解出来ますね。
1050以下の2、3、5、7と互いに素な数の個数は、
オイラーのφ関数
φ(1050) = 1050 * (1-(1/2)) * (1-(1/3)) * (1-(1/5)) * (1-(1/7))
= 1050 * (1/2) * (2/3) * (4/5) * (6/7) = 240
よって、
1050以下の素数の個数は、240 + 4 = 244個以下であることが示せた。
よって、
1000以下の素数の個数は250個以下である。
Q.E.D.
オイラーのφ関数は高校では習わないので、大学受験で使えるかというと、おそらく使えないだろうが、計算自体は小学校レベルなので、計算自体をすることは問題ないだろう。
さて、数学をあまり信じてない人もいるかもしれないので、1000以下の素数をナンバリングして列挙しておきます。
1: 2
2: 3
3: 5
4: 7
5: 11
6: 13
7: 17
8: 19
9: 23
10: 29
11: 31
12: 37
13: 41
14: 43
15: 47
16: 53
17: 59
18: 61
19: 67
20: 71
21: 73
22: 79
23: 83
24: 89
25: 97
26: 101
27: 103
28: 107
29: 109
30: 113
31: 127
32: 131
33: 137
34: 139
35: 149
36: 151
37: 157
38: 163
39: 167
40: 173
41: 179
42: 181
43: 191
44: 193
45: 197
46: 199
47: 211
48: 223
49: 227
50: 229
51: 233
52: 239
53: 241
54: 251
55: 257
56: 263
57: 269
58: 271
59: 277
60: 281
61: 283
62: 293
63: 307
64: 311
65: 313
66: 317
67: 331
68: 337
69: 347
70: 349
71: 353
72: 359
73: 367
74: 373
75: 379
76: 383
77: 389
78: 397
79: 401
80: 409
81: 419
82: 421
83: 431
84: 433
85: 439
86: 443
87: 449
88: 457
89: 461
90: 463
91: 467
92: 479
93: 487
94: 491
95: 499
96: 503
97: 509
98: 521
99: 523
100: 541
101: 547
102: 557
103: 563
104: 569
105: 571
106: 577
107: 587
108: 593
109: 599
110: 601
111: 607
112: 613
113: 617
114: 619
115: 631
116: 641
117: 643
118: 647
119: 653
120: 659
121: 661
122: 673
123: 677
124: 683
125: 691
126: 701
127: 709
128: 719
129: 727
130: 733
131: 739
132: 743
133: 751
134: 757
135: 761
136: 769
137: 773
138: 787
139: 797
140: 809
141: 811
142: 821
143: 823
144: 827
145: 829
146: 839
147: 853
148: 857
149: 859
150: 863
151: 877
152: 881
153: 883
154: 887
155: 907
156: 911
157: 919
158: 929
159: 937
160: 941
161: 947
162: 953
163: 967
164: 971
165: 977
166: 983
167: 991
168: 997
168個しかありませんでした。
素数の個数を示す関数として、π関数というものがある。
π(x)は、x以下の素数の個数を返します。
π(100) = 25
π(1000) = 168
π(10000) = 1229
π(100000) = 9592
…
といった感じですね。
ではでは
knifeのmy Pick