30n±Pのエラトステネスの篩
2021.02.08 Ver.0.009

2009.11.14 Ver.0.001 新規作成
2009.11.15 Ver.0.002 記事追加
2009.11.16 Ver.0.003 素数表を大きくした

2009.11.21 Ver.0.004 記事追加
2009.12.2  Ver.0.005 エラトステネスの篩を追加完了
2009.12.13  Ver.0.006 プログラム追加
2009.12.30  Ver.0.007 PDF追加
2011. 4130  Ver.0.008 プログラムバグ修正
2021. 2. 8  Ver.0.009 プログラムを一本化


まとめのPDF「30n+P形式のエラトステネスの篩」

2、3、5の倍数を除いた素数候補表現は、I=30n+p(1≦p≦29)のとき2x3x5=30の数の中から、

(I mod 2) = 0 (I mod 5) = 0 (I mod 5) = 1 (I mod 5) = 2 (I mod 5) = 3 (I mod 5) = 4
(I mod 3) = 0 30 6 12 18 24
(I mod 3) = 1 10 16 22 28 4
(I mod 3) = 2 20 26 2 8 14
(I mod 2) = 1 (I mod 5) = 0 (I mod 5) = 1 (I mod 5) = 2 (I mod 5) = 3 (I mod 5) = 4
(I mod 3) = 0 15 21 27 3 9
(I mod 3) = 1 25 1 7 13 19
(I mod 3) = 2 5 11 17 23 29

より、 30n+1、30n+7、30n+11,30n+13,30n+17(30n-13),30n+19(30n-11),30n+23(30n-7), 30n+29(30n-1)より、
30n±1、30n±7、30n±11、30n±13となります。

さて、そこで、下の表を作ってみました。
30n±1、30n±7、30n±11、30n±13表

増分+4 増分+6 増分+2 増分+6 増分+4 増分+2 増分+4 増分+2
2 3 5 7(30x0+7) 11(30x0+11) 13(30x0+13) 17(30x1-13) 19(30x1-11)
23(30x1-7) 29(30x1-1) 31(30x1+1) 37(30x1+7) 41(30x1+11) 43(30x1+13) 47(30X2-13) 49(30X2-11)
(7x7)
53(30x2-7) 59(30X2-1) 61(30X2+1) 67(30X2+7) 71(30X2+11) 73(30X3+13) 77(30X3-13)
(7x11)
79(30X3-11)
83(30x3-7) 89(30X3-1) 91(30X3+1)
(7x13)
97(30X3+7) 101(30X3+11) 103(30X3+13) 107(30X4-13) 109(30X4-11)
113(30X4-7) 119(30X4-1)(7x17) 121(30X4+1)
(11x11)
127(30X4+7) 131(30X4+11) 133(30X4+13)
(7X19)
137(30X5-13) 139(30X5-11)
143(30x5-7)
(11x13)
(13X11)
149(30x5-1) 151(30x5+1) 157(30x5+7) 161(30x5+11)
(7x23)
163(30x5+13) 167(30x6-13) 169(30x6-11)
(13X13)
173(30x6-7) 179(30x6-1) 181(30x6+1) 187(30x6+7)
(11x17)
191(30x6+11) 193(30x6+13) 197(30x7-13) 199(30x7-11)
203(30x7-7)
(7X29
)
209(30x7-1)
(11X19)
211(30x7+1) 217(30x7+7)
(7X31
)
221(30x7+11)
(13x17
)
223(30x7+13) 227(30x8-13) 229(30x8-11)
233(30x8-7) 239(30x8-1) 241(30x8+1) 247(30x8+7)
(13x19)
251(30x8+11) 253(30x8+13)
(11x23)
257(30x9-13) 259(30x9-11)
(7x37)
263(30x9-7) 269(30x9-1) 271(30x9+1) 277(30x9+7) 281(30x9+11) 283(30x9+13) 287(30x10-13)
(7x41)
289(30x10-11)
(17x17)
293(30x10-7) 299(30x10-1)
(13x23)
301(30x10+1)
(7x43)
307(30x10+7) 311(30x10+11) 313(30x10+13) 317(30x11-13) 319(30x11-11)
(11x29)
323(30x11-7)
(17x19)
329(30x11-1)
(7x47)
331(30x11+1) 337(30x11+7) 341(30x11+11)
(11x31)
343(30x11+13)
(7x49)
347(30x12-13) 349(30x12-11)
353(30x12-7) 359(30x12-1) 361(30x12+1)
(19x19)
367(30x12+7) 371(30x12+11)
(7x53)
373(30x12+13) 377(30x13-13)
(13x29)
379(30x13-11)
383(30x13-7) 389(30x13-1) 391(30x13+1)
(17x23)
397(30x13+7) 401(30x13+11) 403(30x13+13)
(13x31)
407(30x14-13)
(11x37)
409(30x14-11)
413(30x14-7)
(7x59)
419(30x14-1) 421(30x14+1) 427(30x14+7)
(7x61)
431(30x14+11) 433(30x14+13) 437(30x15-13)
(19x23)
439(30x15-11)
443(30x15-7) 449(30x15-1) 451(30x15+1)
(11x41)
457(30x15+7) 461(30x15+11) 463(30x15+13) 467(30X16-13) 469(30x16-11)
(7x67)
473(30x16-7)
(11x43)
479(30x16-1) 481(30x16+1)
(13x37)
487(30x16+7) 491(30x16+11) 493(30x16+13)
(17x29)
497(30x17-13)
(7x71)
499(30x17-11)
503(30x17-7) 509(30x17-1) 511(30x17+1)
(7x73)
517(30x17+7)
(11x47)
521(30x17+11) 523(30x17+13) 527(30x18-13)
(17x31)
529(30x18-11)
(23x23)
533(30x18-7)
(13x41)
539(30x18-1)
(7x77)
541(30x18+1) 547(30x18+7) 551(30x18+11)
(19x29)
553(30x18+13)
(7x79)
557(30x19-13) 559(30x19-11)
(13x43)
563(30x19-7) 569(30x19-1) 571(30x19+1) 577(30x19+7) 581(30x19+11)
(7x83)
583(30x19+13)
(11x53)
587(30x20-13) 589(30x20-11)(19x31)


この表より,

49(7x7) +28 77(7x11) +14 91(7x13) +28 119(7x17) +14 133(7x19) +28 161(7x23) +42 203(7x29) +14 217(7x31) +42 259(7x37)
      +28 287(7x41) +14 301(7x43) +28 329(7x47) +14 343(7x49) +28 371(7X53) +42 413(7x59) +14 427(7x61) +42 469(7x67)
      +28 497(7x71) +14 511(7x73) +28 539(7x77) +14 553(7x79 )+28 581(7X83) +42 623(7x89) +14 637(7x91) +42 679(7x97)
という繰り返しが見えてきます。また、
49(11x7) +44 121(11x11) +22 143(11x13) +44 187(11x17) +22 209(11x19) +44 253(11x23) +66 319(11x29) +22 341(11x31) +66 407(11x37)
      +44 451(11x41) +22 473(11x43) +44 517(11x47) +22 539(11x49) +44 583(11x53) +66 649(11x59) +22 671(11x61) +66 737(11X67)
という繰り返しが見えてきます。また、
91(13x7) +52 143(13x11) +26 169(13x13) +52 221(13x17) +26 247(13x19) +52 299(13x23) +78 377(13x29) +26 403(13x31) +78 481(13x37)
      +52 533(13x41) +26 559(13x43) +52 611(13x47) +26 637(13x49) +52 689(13x53) +78 767(13x59) +26 793(13x61) +78 871(13x67)
という繰り返しが見えてきます。また、
119(17x7) +68 187(17x11) +34 221(17x13) +68 289(17x17) +34 323(17x19) +68 391(17x23) +102 493(17x29) +34 527(17x31) +102 629(17x37)
       +68 697(17x41) +34 731(17x43) +68 799(17x47) +34 833(17x49) +68 901(17x53) +102 1003(17x59) +34 1037(17x61) +102 1139(17x67)

このように、素数でないものがある規則の繰り返しで現れるので,まず30n±1、30n±7、30n±11、30n±13表を作って,この繰り返しの規則 にのっとってエラトステネスの篩で削除すれば,もともとの数が少ないので高速化できます。

たとえば,7の倍数は、以下の表にまとめられます。

 増分+14 (7x2) 増分+42 (7x6) 増分+28 (7x4) 増分+14 (7x2) 増分+28 (7x4) 増分+14 (7x2) 増分+28 (7x4) 増分+42 (7x6)
7{7x(30x0+1)} 49{7x(30x0+7)} 77{7x(30x0+11)} 91{7x(30x0+13)} 119{7x(30x1-13)} 133{7x(30x1-11)} 161{7x(30x1-7)} 203{7x(30x1-1)}
217{7x(30x1+1)} 259{7x(30x1+7)} 287{7x{30x1+11)} 301{7x(30x1+13)} 329{7x(30x2-13)} 343{7x(30x2-11)} 371{7x(30x2-7)} 413{7X(30x2-1)}
427{7x(30x2+1)} 469{7x(30x2+7)} 497{7x{30x2+11)} 511{7x(30x2+13)} 539{7x(30x3-13)} 553{7x(30x3-11)} 581{7x(30x3-7)} 623{7x(30x3-1)}
637{7x(30x3+1)} 679{7x(30x3+7)} 707{7x(30x3+11)} 721{7x(30x3+13)} 749{7x(30x4-13)} 763{7x(30x4-11)} 791{7x(30x4-7)} 833{7x(30x4-1)}

同じことが11,13,17,・・・にも言えます。
もともと最初の表には30n±1、30n±7、30n±11、30n±13の数しかありませんので,素数でないものは、素数と素数の積ですから
素数でないものは、素数×(30n±1、30n±7、30n±11、30n±13)の数しかありません。

さて、
==================掲示板より================================================
>2と3と5を除いた素数候補30n±1、30n±7、30n±11、30n±13でも エラトステネスの篩

30k+1=(30m+1)(30n+1)
30k+1=(30m-1)(30n-1)
30k-1=(30m-1)(30n+1)
30k-1=(30m+1)(30n-1)
は何とかなりますが,同様に
30k-7=(30m-1)(30n+7)=30P-7
30k-7=(30m+1)(30n-7)=30P-7
30k+7=(30m+1)(30n+7)=30P+7
30k+7=(30m-1)(30n-7)=30P+7
同じように
30k-11=(30m-1)(30n+11)=30P-11
30k+11=(30m+1)(30n+11)=30P+11
これからあと2組
また
30k-13=(30m-1)(30n+13)=30P-13
30k+13=(30m+1)(30n+13)=30P+13
これからあと2組
また、
30k+1=(30m+7)(30n+13)=30P+91=30(P+3)+1
30K-7=(30m+11)(30n+13)=30P+143=30(P+5)-7
30K-13=(30m+7)(30n+11)=30P+77=30(P+3)-13
これらもあと2組

とやってみるとなんとなくとっかかりが掴めそうな...

==================掲示板より================================================
これですが,よくよく見れば,素数×(30n±1、30n±7、30n±11、30n±13)の数しかありません。

したがって、この規則が全ての30n±1、30n±7、30n±11、30n±13表に含まれる数について成り立つことを証明する必要はありません。

でも、やっぱり、
「もともと最初の表には30n±1、30n±7、30n±11、30n±13の数しかありませんので,素数でないものは、素数と素数の積ですから
素数でないものは、素数×(30n±1、30n±7、30n±11、30n±13)の数しかありません。」
の証明は必要だな。

==================掲示板より============================================== ==
要するに,証明は
(30n+p)=(30m+q)(30k+r)
(30n+p)=(30m-q)(30k-r)
(30n-p)=(30m+q)(30k-r)
(30n-p)=(30m-q)(30k+r)
が、p,q,rが1,7,11,13,17,19,23,29のいずれでも成り立つことを示せば良いわけだ。
4×8×8×8=2048の組合せを全て示せばいいということになる。

==================掲示板より================================================
ということなので,
1)
(30m+1)(30k+1)=30p+1=(30a-29)(30b-29)
2)
(30m+1)(30k+7)=30p+7=(30a-29)(30b-23)
3)
(30m+1)(30k+11)=30p+11=(30a-29)(30b-19)
4)
(30m+1)(30k+13)=30p+13=(30a-29)(30b-17)
5)
(30m+1)(30k+17)=30p+17=(30a-29)(30b-13)
6)
(30m+1)(30k+19)=30p+19=(30a-29)(30b-11)
7)
(30m+1)(30k+23)=30p+23=(30a-29)(30b-7) 
8)
(30m+1)(30k+29)=30p+29=(30a-29)(30b-1) 


1)
(30m+7)(30k+1)=30p+7=(30a-13)(30b-29)
2)
(30m+7)(30k+7)=30p+49=30(p+1)+19=(30a-13)(30b-23)
3)
(30m+7)(30k+11)=30p+77=30(p+2)+17=(30a-13)(30b-19)
4)
(30m+7)(30k+13)=30p+91=30(p+3)+1=(30a-13)(30b-17)
5)
(30m+7)(30k+17)=30p+119=30(p+3)+29=(30a-13)(30b-13)
6)
(30m+7)(30k+19)=30p+133=30(p+4)+13=(30a-13)(30b-11)
7)
(30m+7)(30k+23)=30p+161=30(p+5)+11=(30a-13)(30b-7)
8)
(30m+7)(30k+29)=30p+203=30(p+6)+23=(30a-13)(30b-1)



1)
(30m+11)(30k+1)=30p+11=(30a-19)(30b-29)
2)
(30m+11)(30k+7)=30p+77=30(p+2)+17=(30a-19)(30b-23)
3)
(30m+11)(30k+11)=30p+121=30(p+4)+1=(30a-19)(30b-19)
4)
(30m+11)(30k+13)=30p+143=30(p+4)+23=(30a-19)(30b-17)
5)
(30m+11)(30k+17)=30p+187=30(p+6)+7=(30a-19)(30b-13)
6)
(30m+11)(30k+19)=30p+209=30(p+6)+29=(30a-19)(30b-11)
7)
(30m+11)(30k+23)=30p+253=30(p+8)+11=(30a-19)(30b-7)
8)
(30m+11)(30k+29)=30p+319=30(p+10)+19=(30a-19)(30b-1)



1)
(30m+13)(30k+1)=30p+13=(30a-17)(30b-29)
2)
(30m+13)(30k+7)=30p+91=30(p+3)+1=(30a-17)(30b-23)
3)
(30m+13)(30k+11)=30p+143=30(p+4)+23=(30a-17)(30b-19)
4)
(30m+13)(30k+13)=30p+169=30(p+5)+19=(30a-17)(30b-17)
5)
(30m+13)(30k+17)=30p+221=30(p+7)+11=(30a-17)(30b-13)
6)
(30m+13)(30k+19)=30p+247=30(p+8)+7=(30a-17)(30b-11)
7)
(30m+13)(30k+23)=30p+299=30(p+9)+29=(30a-17)(30b-7)
8)
(30m+13)(30k+29)=30p+377=30(p+12)+17=(30a-17)(30b-1)



1)
(30m+17)(30k+1)=30p+17=(30a-13)(30b-29)
2)
(30m+17)(30k+7)=30p+119=30(p+6)+29=(30a-13)(30b-23)
3)
(30m+17)(30k+11)=30p+187=30(p+6)+7=(30a-13)(30b-19)
4)
(30m+17)(30k+13)=30p+221=30(p+7)+11=(30a-13)(30b-17)
5)
(30m+17)(30k+17)=30p+289=30(p+9)+19=(30a-13)(30b-13)
6)
(30m+17)(30k+19)=30p+323=30(p+10)+23=(30a-13)(30b-11)
7)
(30m+17)(30k+23)=30p+391=30(p+13)+1=(30a-13)(30b-7)
8)
(30m+17)(30k+29)=30p+493=30(p+16)+13=(30a-13)(30b-1)



1)
(30m+19)(30k+1)=30p+19=(30a-11)(30b-29)
2)
(30m+19)(30k+7)=30p+133=30(p+4)+13=(30a-11)(30b-23)
3)
(30m+19)(30k+11)=30p+209=30(p+6)+29=(30a-11)(30b-19)
4)
(30m+19)(30k+13)=30p+247=30(p+8)+7=(30a-11)(30b-17)
5)
(30m+19)(30k+17)=30p+323=30(p+10)+23=(30a-11)(30b-13)
6)
(30m+19)(30k+19)=30p+361=30(p+12)+1=(30a-11)(30b-11)
7)
(30m+19)(30k+23)=30p+437=30(p+14)+17=(30a-11)(30b-7)
8)
(30m+19)(30k+29)=30p+551=30(p+18)+11=(30a-11)(30b-1)



1)
(30m+23)(30k+1)=30p+23=(30a-7)(30b-29)
2)
(30m+23)(30k+7)=30p+161=30(p+5)+11=(30a-7)(30b-23)
3)
(30m+23)(30k+11)=30p+253=30(p+8)+13=(30a-7)(30b-19)
4)
(30m+23)(30k+13)=30p+299=30(p+9)+29=(30a-7)(30b-17)
5)
(30m+23)(30k+17)=30p+391=30(p+13)+1=(30a-7)(30b-13)
6)
(30m+23)(30k+19)=30p+437=30(p+14)+17=(30a-7)(30b-11)
7)
(30m+23)(30k+23)=30p+529=30(p+17)+19=(30a-7)(30b-7)
8)
(30m+23)(30k+29)=30p+667=30(p+22)+7=(30a-7)(30b-1)



1)
(30m+29)(30k+1)=30p+29=(30a-1)(30b-29)
2)
(30m+29)(30k+7)=30p+203=30(p+6)+23=(30a-1)(30b-23)
3)
(30m+29)(30k+11)=30p+319=30(p+10)+19=(30a-1)(30b-19)
4)
(30m+29)(30k+13)=30p+377=30(p+12)+17=(30a-1)(30b-17)
5)
(30m+29)(30k+17)=30p+493=30(p+16)+13=(30a-1)(30b-13)
6)
(30m+29)(30k+19)=30p+551=30(p+18)+11=(30a-1)(30b-11)
7)
(30m+29)(30k+23)=30p+667=30(p+22)+7=(30a-1)(30b-7)
8)
(30m+29)(30k+29)=30p+841=30(p+28)+1=(30a-1)(30b-1)

これで
(30n+p)=(30m+q)(30k+r)
(30n+p)=(30m-q)(30k-r)

の証明終わり。

1)
(30m+1)(30k-1)=30p-1=30(p-1)+29=(30a-29)(30b+29)
2)
(30m+1)(30k-7)=30p-7=30(p-1)+23=(30a-29)(30b+23)
3)
(30m+1)(30k-11)=30p-11=30(p-1)+19=(30a-29)(30b+19)
4)
(30m+1)(30k-13)=30p-13=30(p-1)+17=(30a-29)(30b+17)
5)
(30m+1)(30k-17)=30p-17=30(p-1)+13=(30a-29)(30b+13)
6)
(30m+1)(30k-19)=30p-19=30(p-1)+11=(30a-29)(30b+11)
7)
(30m+1)(30k-23)=30p-23=30(p-1)+7=(30a-29)(30b+7) 
8)
(30m+1)(30k-29)=30p-29=30(p-1)+1=(30a-29)(30b+1) 

以下において30p-c=30(p-1)+d(ただし、d=30-c)の変換は省略する。

1)
(30m+7)(30k-1)=30p-7=(30a-13)(30b+29)
2)
(30m+7)(30k-7)=30p-49=30(p-1)-19=(30a-13)(30b+23)
3)
(30m+7)(30k-11)=30p-77=30(p-2)-17=(30a-13)(30b+19)
4)
(30m+7)(30k-13)=30p-91=30(p-3)-1=(30a-13)(30b+17)
5)
(30m+7)(30k-17)=30p-119=30(p-3)-29=(30a-13)(30b+13)
6)
(30m+7)(30k-19)=30p-133=30(p-4)-13=(30a-13)(30b+11)
7)
(30m+7)(30k-23)=30p-161=30(p-5)-11=(30a-13)(30b+7)
8)
(30m+7)(30k-29)=30p-203=30(p-6)-23=(30a-13)(30b+1)



1)
(30m+11)(30k-1)=30p-11=(30a-19)(30b29)
2)
(30m+11)(30k-7)=30p-77=30(p-2)-17=(30a-19)(30b+23)
3)
(30m+11)(30k-11)=30p-121=30(p-4)-1=(30a-19)(30b+19)
4)
(30m+11)(30k-13)=30p-143=30(p-4)-23=(30a-19)(30b+17)
5)
(30m+11)(30k-17)=30p-187=30(p-6)-7=(30a-19)(30b+13)
6)
(30m+11)(30k-19)=30p-209=30(p-6)-29=(30a-19)(30b+11)
7)
(30m+11)(30k-23)=30p-253=30(p-8)-11=(30a-19)(30b+7)
8)
(30m+11)(30k-29)=30p-319=30(p-10)-19=(30a-19)(30b+1)



1)
(30m+13)(30k-1)=30p-13=(30a-17)(30b+29)
2)
(30m+13)(30k-7)=30p-91=30(p-3)-1=(30a-17)(30b+23)
3)
(30m+13)(30k-11)=30p-143=30(p-4)-23=(30a-17)(30b+19)
4)
(30m+13)(30k-13)=30p-169=30(p-5)-19=(30a-17)(30b+17)
5)
(30m+13)(30k-17)=30p-221=30(p-7)-11=(30a-17)(30b+13)
6)
(30m+13)(30k-19)=30p-247=30(p-8)-7=(30a-17)(30b+11)
7)
(30m+13)(30k-23)=30p-299=30(p-9)-29=(30a-17)(30b+7)
8)
(30m+13)(30k-29)=30p-377=30(p-12)-17=(30a-17)(30b+1)



1)
(30m+17)(30k-1)=30p-17=(30a-13)(30b+29)
2)
(30m+17)(30k-7)=30p-119=30(p-6)-19=(30a-13)(30b+23)
3)
(30m+17)(30k-11)=30p-187=30(p-6)-7=(30a-13)(30b+19)
4)
(30m+17)(30k-13)=30p-221=30(p-7)-11=(30a-13)(30b+17)
5)
(30m+17)(30k-17)=30p-289=30(p-9)-19=(30a-13)(30b+13)
6)
(30m+17)(30k-19)=30p-323=30(p-10)-23=(30a-13)(30b+11)
7)
(30m+17)(30k-23)=30p-391=30(p-13)-1=(30a-13)(30b+7)
8)
(30m+17)(30k-29)=30p-493=30(p-16)-13=(30a-13)(30b+1)



1)
(30m+19)(30k-1)=30p-19=(30a-11)(30b+29)
2)
(30m+19)(30k-7)=30p-133=30(p-4)-11=(30a-11)(30b+23)
3)
(30m+19)(30k-11)=30p-209=30(p-6)-29=(30a-11)(30b+19)
4)
(30m+19)(30k-13)=30p-247=30(p-8)-7=(30a-11)(30b+17)
5)
(30m+19)(30k-17)=30p-323=30(p-10)-23=(30a-11)(30b+13)
6)
(30m+19)(30k-19)=30p-361=30(p-12)-1=(30a-11)(30b+11)
7)
(30m+19)(30k-23)=30p-437=30(p-14)-17=(30a-11)(30b+7)
8)
(30m+19)(30k-29)=30p-551=30(p-18)-11=(30a-11)(30b+1)



1)
(30m+23)(30k-1)=30p-23=(30a-7)(30b+29)
2)
(30m+23)(30k-7)=30p-161=30(p-5)-11=(30a-7)(30b+23)
3)
(30m+23)(30k-11)=30p-253=30(p-8)-13=(30a-7)(30b+19)
4)
(30m+23)(30k-13)=30p-299=30(p-9)-29=(30a-7)(30b+17)
5)
(30m+23)(30k-17)=30p-391=30(p-13)-1=(30a-7)(30b+13)
6)
(30m+23)(30k-19)=30p-437=30(p-14)-17=(30a-7)(30b+11)
7)
(30m+23)(30k-23)=30p-529=30(p-17)-19=(30a-7)(30b+7)
8)
(30m+23)(30k-29)=30p-667=30(p-22)-7=(30a-7)(30b+1)



1)
(30m+29)(30k-1)=30p-29=(30a-1)(30b+29)
2)
(30m+29)(30k-7)=30p-203=30(p-6)-23=(30a-1)(30b+23)
3)
(30m+29)(30k-11)=30p-319=30(p-10)-19=(30a-1)(30b+19)
4)
(30m+29)(30k-13)=30p-377=30(p-12)-17=(30a-1)(30b+17)
5)
(30m+29)(30k-17)=30p-493=30(p-16)-13=(30a-1)(30b+13)
6)
(30m+29)(30k-19)=30p-551=30(p-18)-11=(30a-1)(30b+11)
7)
(30m+29)(30k-23)=30p-667=30(p-22)-7=(30a-1)(30b+7)
8)
(30m+29)(30k-29)=30p-841=30(p-28)-1=(30a-1)(30b+1)

なお、30(p-w)-sは正の数であることに注意。


これで
(30n-p)=(30m+q)(30k-r)
(30n-p)=(30m-q)(30k+r)

の証明終わり。

もともと最初の表には30n±1、30n±7、30n±11、30n±13の数ですが素数でないものは、素数と素数の積ですから
素数でないものは、素数×(30n±1、30n±7、30n±11、30n±13)の数しかないことを証明しました。

さて、エラトステネスの篩ですが


これは,7の倍数が黄色に塗ってあります。縦に等間隔で並びます。

これは11の倍数の表です。同じく縦に並びます。

これは
=====掲示板より=======
30n+Qがなぜ縦に並ぶかの証明。

素数30m+qの倍数は、縦に並ぶとき横は30ですから30*(30m+q)=30*30m+30qより縦に並びます。
今,その間のj/kにあるとすると縦に並ぶとき横は30ですから
30*(30m+q)*j/k=30*(30m*j/k)+30*q*j/k
となります。j/k<1なのでq*j/k<q
よって,30q*j/k<30qとなり,縦には並ばないことになります。
すると,その間のj/kにあるとすることはできません。
したがって,素数30m+qの倍数は30m+qごとに並びます。


=================
より、全ての素数の倍数に成り立ちます。

したがって,

=====掲示板より=======
まず、30n+Qの表を作る。
まず表の最初の数7を取り出し、7に30n+Qの表のはじめの数すなわち7をかける。49を得る。
(7x7) mod 30=49 mod 30=19 より、49のあとは56個おきに表の全ての数を消す。
次に表から11を得る。
(7x11) mod 30=77 mod 30=17より、77のあとは56個おきに表の全ての数を消す。
次に表から13を得る。
(7x13) mod 30=91 mod 30=1より、91のあとは56個おきに表の全ての数を消す。
このように8つの列を全て処理すれば,7の倍数は除かれる。

次に,表から7の次の11を得る。
(11x11) mod 30=121 mod 30=1 より、121のあとは88個おきに表の全ての数を消す。
次に表から13を得る。
(11x13) mod 30=143 mod 30=23より、143のあとは88個おきに表の全ての数を消す。
このように8つの列を全て処理すれば,11の倍数は除かれる。

これを30n+Qの表の残っている数をはじめから全てやれば完了する。

=================

となります。

32bitの符号付き整数で表わせる最大値に設定してあります。しらみつぶし法と一致することを確認しています。

Ubuntu20.04で

$ gcc -Wall -O2 -o sosuu-3.max sosuu-3.max.c
$ ./sosuu-3.max
篩=46337 経過時間= 1 分 8 秒
now saving  disk file!
素数個数=105080509

となりました。

この計算にメモリは、2.4GBytesくらい使います。

エラトステネス篩法によるsosuu-3.max.c のダウンロード

出力は、sosuuhyoというファイルです。約1.1GBytesです。

素数が1行8個並んだテキストファイルです。


つづく

メインページに戻る