题目描述
哥德巴赫猜想:任何一个大于2的偶数都是两个素数之和。
输入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。
输入输出样例
输入样例1:
10
输出样例1:
4=2+2
6=3+3
8=3+5
10=3+7
数据规模与约定
对于100%的数据,N<=10000
测试网站
https://www.luogu.org/problemnew/show/P1304
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int N;
int prime(int a)
{
for(int i=2;i*i<=a;i++)
{
if(a%i==0) return 0;
}
return 1;
}
int main()
{
cin>>N;
for(int i=4;i<=N;i+=2)
{
for(int j=2;1;j++)
{
if(prime(j)&&prime(i-j))
{
cout<<i<<"="<<j<<"+"<<i-j<<endl;
break;
}
}
}
return 0;
}