//1、输入一个偶数。判断是否为偶数
//2、若是,求出小于其的所有素数
//3、将它们求和
//4、验证是否满足哥德巴赫猜想
#include<iostream>
#include<cmath>
using namespace std;
int Sushu(int);
int main()
{
int n,k,q;
int a[1000];
begin:
cout<<"please input an even number(偶数):"<<endl;
cin>>n;
for(int p=0;p<1000;p++)
{
a[p]=0;
}
if(n%2!=0)//判断是否为偶数
{
cout<<"wrong,please try again!";
goto begin;
}else
{
if(n==2)
{
cout<<"1"<<" "<<"1"<<endl;
cout<<"OMG,偶数"<<n<<"符合哥德巴赫猜想!!"<<endl;
}else
{
for(int i=3;i<n;i++)//把到n为止的素数全部存入数组
{
if(Sushu(i))
{
a[i-1]=i;
}
}
for(int j=0;j<100;j++)
{
a[0]=1;
a[1]=2;
for(k=j+1;k<100;k++)
{
q=a[j]+a[k];
if(q==n)
{
cout<<a[j]<<" "<<a[k]<<endl;
cout<<"OMG,偶数"<<n<<"符合哥德巴赫猜想!!"<<endl;
}
}
}
}
}
return 0;
}
int Sushu(int index)
{
//int y=sqrt(index);
int z;
for(int m=2;m<index;m++)
{
if(index%m==0)
{
z=0;
break;//没有break这个程序就是错的
}else
{
z=index;
}
}
return z;
}
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
最新推荐文章于 2022-08-05 14:11:31 发布