分享
 
 
 

费尔马二平方素数

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

费尔马“二平方”素数

问题的提出除2这个非凡的素数外,所有的素数都可以分成两类:第一类是被4除余1的素数,如5,13,17,2937,41;第二类是被4除余3的素数,如3,7,11,19,23,31。第一类素数都能表示成两个整数的平方和(第二类则不能)。

例如:5=1-1+2*213=2*2+3*317=1*1+4*4 29=2*2+5*5这就是闻名的费尔马“二平方”定理。有趣的是:上述等式右侧的数有的又恰恰是两个素数的平方,如13,29的表达式,我们起名叫作费尔马“二平方”素数,即假如一个素数能够表示成两个素数的平方和的形式:F=X*X+Y *Y (1)其中F、X、Y 都是素数,它就是费尔马“二平方”素数。

编程思路本文拟用c 语言编程,求42亿之内的费尔马“二平方”素数。假如按定义从左向右,先求一个素数F,然后再去找相应的素数X、Y ,工作量重复太大。我们可以对上述公式进行分析:

1、左侧F 是素数,它肯定是奇数,那么右侧两式的和也应该是奇数,这样X 和Y 为一奇一偶,因为奇数的平方还是奇数,偶数的平方还是偶数。X、Y 又要求是素数,而既是偶数又是素数的数只有一个,就是2。我们假定X=2。所以(1)式可以简化为:F=2*2+Y *Y(2)也就是说,费尔马“二平方”素数的表示形式是惟一的。

2、按式(2)由右向左,由小到大找素数Y ,再计算出相应的F,判定其是否素数。

3、求出素数Y 后将其保存起来,在判定其它数是否素数时可直接用已求出的素数去除,如此反复。

源程序

#include<math.h>

void main()

{

unsigned long i,j,a[10000],m,m1=3,m2=7,b=1,n=0,d=1,x=4000000000;

a[1]=2;

10:for(i=m1;i<=m2;i++,i++)

{

if(i%a[1]==0) goto 13;

for(j=2;j<=d-1;j++)

if(i%a[j]==0) goto 13;

a[b++]=i; m=i*i+4;

if(m>x) goto 14;

for(j=2;j<=b-2;j++)

if(m%a[j]==0) goto 13;

printf("%20lu=2*2+%5lu*%5lu",m,i,i);

if(++n%2==0) printf("\n");

13:m1=m2+4; m2=a[++d]*a[d]-2;

goto 10;

14:printf("\ntotal=%lu\n",n);

}

结论

运行程序会发现,除“29=2*2+5*5”以外,所有的费尔马“二平方”素数个位数字都是3,相应Y 的个位数字都是3或7。费尔马“二平方”素数分布(修改程序中变量x 的值得到)也很耐人寻味,请看下表(表中10万以内包含1万以内,下同):

范围个数最大的一个的表达式

1万109413=2*2+97*97

10万2097973=2*2+313*313

100万42994013=2*2+997*997

1000万769223373=2*2+3037*3037

1亿18397752773=2*2+9887*9887

10亿427999002453=2*2+31607*31607

20亿5511983188093=2*2+44533*44533

30亿6412993512373=2*2+54713*54713

40亿7183977446493=2*2+63067*63067

费尔马“二平方”素数太少了,40亿内才718个,千万分之二还不到呢。

随着数的范围的增大,似乎越来越稀少,但再往后永远是这样吗?会不会在某个范围内反而又稠密起来呢?

费尔马“二平方”素数是无穷多个呢,还是有限多个呢?假如是有限个,又是多少个呢?最大的一个又是什么数呢?

这些问题的证实可能很简单,也许很复杂,真说不定会成为像“哥德巴赫猜想”那样的谜呢!

----------------------------------------------------------------------

下面是作者原程序,因为是中文全角,上面的就改了一下原文放在下面对照:

#include″math .h″

main()

{unsigned longi ,j ,a[10000],m,m1=3,m2=7,b =1,n =0,d =1,x=4000000000;

a[1]=2;

l0:for (i =m1;i <=m2;i ++,i ++)

{if (i %a[1]==0)goto l3;

for (j =2;j <=d -1;j ++)

if (i %a[j]==0)goto l3;

a[b ++]=i ;m=i *i +4;

if (m>x)goto l4;

for (j =2;j <=b -2;j ++)

if (m%a[j]==0)goto l3;

printf(″%20lu =2*2+%5lu *%5lu″,m,i ,i);

if (++n %2==0)printf(″\n″);

l3:;}m1=m2+4;m2=a[++d]*a[d]-2;

goto l0;

l4:printf(″\ntotal =%lu\n″,n);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有