tiaotiaoxiong666 2022-10-21 00:55 采纳率: 0%
浏览 38

验证哥德巴赫猜想 bool divide(int n)

验证哥德巴赫猜想 要求将6-100之间的偶数都表示为两个素数之和,输出时一行输出五组

从小到大,每组五行,每组间用一个空格分格,每组格式为:4d%=2d%+2d%
编写函数bool divide(int n),用来将偶数n分解为两个质数;若分解成功,则返回true;否则返回false
编写函数bool lsPrime(int m)是用来判断m是否为质数;若是,则函数返回true;否则返回false
  • 写回答

1条回答 默认 最新

  • gyk1303 2022-10-21 08:23
    关注
    
    
    ```c++
    #include <iostream>
    #include <math.h>
    using namespace std;
    void divide(int);
    int isPrime(int);
    
    int main()
    {
        int i,n;
        cout<<"请输入一个大于6的整数:";
        cin>>n;
        if(n<6) return 0;
        for(i=6;i<=n;++i)//从 6到 n,每个数都判断一次
            divide(i);
        return 0;
    }
    
    void divide(int n)
    {
        int i,m;
        for(i=3;i<n/2;++i)
        {
            if(isPrime(i)==0) continue;//i不是质数
            m=n-i;
            if(isPrime(m)!=0) break;//m是质数
        }
        if(i>n/2)
            cout<<"哥德巴赫猜想不成立";
        cout<<n<<"="<<i<<"+"<<m<<endl;
    }
    
    int isPrime(int n)//判断质数
    {
        int i;
        for(i=2;i<=sqrt(n);++i)//循环根号n次即可
        {
            if(n%i==0) return 0;//不是质数
            return 1;//是质数
        }
    }
    
    

    ```

    评论

报告相同问题?

问题事件

  • 创建了问题 10月21日