zoukankan      html  css  js  c++  java
  • 证明不小于6的偶数都是两个素数之和

    所谓哥德巴赫猜想,是指哥德巴赫在教学中发现,每个不小于6的偶数都是两个素数之和。大家都相信这个猜想是正确的,但不能证明。

                对于哥德巴赫猜想的验证,算法很简单,其基本思路是:设n为大于等于6的一个偶数,可将其分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则在该数得到验证。若n1不是素数,就不必再检查n2是否素数。先从n1=2开始,检验n1和n2(n2=n-n1)是否素数。然后使n1+2再检验n1、n2是否素数……,直到n1=n/2为止。

    int PrimeNum(int i) //判断数i是否为质数 
    {
        int j,flag=1;
        for(j=2;j*j<=i-1;j++) //循环除以每个数 
        {
            if(i%j==0) //i能被j整除,表示不是质数 
            {
                flag=0;
                break; 
            }
        }
        return flag; //返回结果 
    }
    int main()
    {
        int n,i,j,flag;for(i=6;i<=n;i+=2) //从6开始,循环验证各偶数 
        {
            flag=1;
            for(j=2;j<=i/2;j++) //判断组成每个数的两个加数 
            {
            //如果有一个加数是偶数则不判断 
              if(j%2==0 || ((i-j)%2==0)) continue;//若一个加数是偶数,不进行素数判断 
              if(PrimeNum(j) && PrimeNum(i-j)) //若两个加数都是素数 
              {
                  printf("%d=%d+%d
    ",i,j,i-j);//输出素数 
                  flag=0; //清除标志 
                  break; 
              }
            }
            if(1==flag)//若某个偶数不是由两个奇数组成 
                printf("找到一个不符合要求的偶数:%d
    ",j); 
        }
        getch();
        return 0;
    }
  • 相关阅读:
    正则表达式把所有Paul替换成Ringo:Paul Puala Pualine paul Paul
    DOM 和 BOM
    新手的grid布局
    css中的单位和css中的颜色表示方法
    css定位
    Winform 通过 WebBrowser 与 JS 交互
    PDF目录编辑器使用介绍
    [.NET] 控制只启动单个指定外部程序
    搭建 Frp 来远程内网 Windows 和 Linux 机子
    CentOs8 nmcli命令行方式操作网卡配置
  • 原文地址:https://www.cnblogs.com/yaowen/p/4492110.html
Copyright © 2011-2022 走看看