题目描述
输入N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想。
(N为偶数)。
如果一个数,例如10,则输出第一个加数相比其他解法最小的方案。如10=3+7=5+5,则10=5+5是错误答案。
输入输出格式
输入格式:
第一行N
输出格式:
4=2+2 6=3+3 …… N=x+y
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int n,m,s,t,a[10005],cnt,bnt; int main() { cin>>s; a[1]=2; cnt=1; for(register int x=3;x<=s;x++) { for(register int y=2;y<=sqrt(x);y++) { if(x%y==0) { bnt++; break; } } if(bnt==0) { cnt++; a[cnt]=x; } else { bnt=0; } } // for(int z=1;z<=cnt;z++) // { // cout<<a[z]<<endl; // } for(int l=2;l<=s;l=l+2) { for(m=1;m<=cnt;m++) { for(n=m;n<=cnt;n++) { if(a[m]+a[n]==l) { cout<<l<<"="<<a[m]<<"+"<<a[n]<<endl; t++; break; } } if(t==1) { t=0; break; } } } }