费尔马二平方素数

love喷镀

love喷镀

2016-02-19 13:06

今天图老师小编给大家介绍下费尔马二平方素数,平时喜欢费尔马二平方素数的朋友赶紧收藏起来吧!记得点赞哦~
费尔马“二平方”素数    问题的提出除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 后将其保存起来,在判定其它数是否素数时可直接用已求出的素数去除,如此反复。
  源程序
  #includemath.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(mx) 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("");
      13:m1=m2+4; m2=a[++d]*a[d]-2;
      goto 10;
      14:printf("total=%lu",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);
  }
  
展开更多 50%)
分享

猜你喜欢

费尔马二平方素数

编程语言 网络编程
费尔马二平方素数

187平方米智利几何房屋

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
187平方米智利几何房屋

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

10平方米的卧室风水说

生活常识
10平方米的卧室风水说

132平方米日式禅风休闲

中式风格
132平方米日式禅风休闲

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

17.2平方米的迷你小宅

生活常识
17.2平方米的迷你小宅

60平方小型公寓室内设计欣赏

室内设计 单身公寓效果图
60平方小型公寓室内设计欣赏

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JQuery 学习笔记01 JQuery初接触

JQuery 学习笔记01 JQuery初接触

更改Excel2007自选图形的边框线条颜色

更改Excel2007自选图形的边框线条颜色
下拉加载更多内容 ↓