就是给出一个数 然后让你验证哥德巴赫猜想 输出小的那个素数最小的解
代码:
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int p[1000010],n,a[200010],cnt;
void get_prime()
{
p[1]=1;
for(int i=2;i<=1000;i++)
if(!p[i])
for(int j=i*2;j<=1000000;j=j+i)
p[j]=1;
for(int i=2;i<=1000000;i++)
if(!p[i])a[++cnt]=i;
}
int main()
{
get_prime();
while(scanf("%d",&n)==1&&n)
{
for(int i=1;a[i]<=n/2;i++)
if(!p[n-a[i]])
{
printf("%d = %d + %d\n",n,a[i],n-a[i]);
break;
}
}
return 0;
}