哥德巴赫猜想——偶数(>6)表示为素数和

哥德巴赫猜想——偶数(>6)表示为素数和

【问题】写一个函数验证哥德巴赫猜想: 一个不小于6的偶数可以表示为两个素数之和,如6=3+3, 8=3+5, 10=3+7,…。

【样例说明】如16既可以表示为素数3和素数13的和,也可以表示为素数5和素数11的和:16=3+13、16=5+11

【示例代码】

#include<iostream>
#include<cmath>
using namespace std;
int Goldbach(int);
int main()
{
    int number;
    cin>>number;
    Goldbach(number);
    return 0;
}
int Goldbach(int m)
{
    int prime(int);
    int i,a=0,b,t;
    t=m/2;
    for(i=2;i<=t;i++)
    {
        if(prime(i)==1)
        {a=i;
         b=m-a;
         if(prime(b)==1)
        cout<<m<<'='<<a<<'+'<<b<<endl;}
    }
 return 0;
}
int prime(int x)//判别素数
{
    int i,y,k=sqrt(x);
    if(x==1) {y=0;}
    else if(x==2||x==3) {y=1;}
    else for(i=2;i<=k;i++)
    {
    if(x%i==0)
    	{y=0;break;}
    else y=1;
    }
    return y;
}

如有更优方法或代码存在错误,欢迎各位大佬提出!与君同行,共同进步!

发布了13 篇原创文章 · 获赞 0 · 访问量 123

猜你喜欢

转载自blog.csdn.net/qq_45909595/article/details/104073295