|

楼主 |
发表于 2011-4-28 17:22
|
显示全部楼层
[原创]快速筛选大素数的1个数学原理
实际这样编,举例说明如下:
称序简述如下:1,验证M(可做15位的)的小因数部分,令B1=100,求出N1的值,D=M/4,N1=(D/(2N1+1))^(1/2)去整数,试除2N1+1以内的全部素数或奇数, 2,求出B1和B2之间是否有实际B值的接近值,B2=1,则可得出N2,求出B3=B4=?B3和B4的公式多次改进过,现在的两者计算结果相同,则可得N3=N4=?3,代入粗化公式,求出N3与实际N值的误差F,B5=(B3+1)/2,其他公式见前述,(注:部分公式和步骤可省略)
4,代入细化公式求解,5,代入修正值公式求解(可省略),并试除2N7+1+-10^2
6,计算M的最大因数,公式略,试除该因数
7,计算最大因数与N2之间的与实际因数接近的N值,先求出B9=B10=?两值也是相同,公式可认为是一个,仅算一个就行
8,9,与4,5,相同,试除2N11+1+-10^2,则可确定是否为素数
公式变更B3=B1-(B1-B2)(D-D1)/(2D-D1-D2)=B2+(B1-B2)(D-D2)/(2D-D1-D2),B4=B1-(B1-B2)(D-D2)/(2D-D1-D2)=B2+(B1-B2)(D-D1)/(2D-D1-D2),这次实验可不用代入B4的值,有关B4的公式可省略
举例:M=14585113,(注:粗化和细化公式已省略)
1,D=14585113/4=3646278,B1=10,则N1=416,X1=4169,D1=3646249,试除833,831,……
2,B2=1,则N2=1102,X2=1102,D2=3645416,则B3=B4=9.707,则N3=N4=422,X3=4103,D3=3645541,
3,代入粗化公式B5=(9.707+1)/2=5,a=-11,b=3981,c=-737,判别式=15815933(取绝对值),则F=0,或-723由于422-723小于0可不算
4,422代入细化公式B6=9,则a=-19,b=601,c=-737,F=2,或60
5,试除2(422+60)+1=965,967,……,997,得14585113=997*14629
6,最大值计算,M=14585113=4((1910*1911)-3732)+1,则3732^(1/2)=61,N=1910-61=1849,2N+1=3699.
|
|