【问题描述】
哥德巴赫猜想指出:任何一个不小于6的偶数都可以表示为两个素数之和。例如:6=3+3 8=3+5 … 50=3+47。从键盘输入n(n>=6且为偶数),输出对应的表达式,编写函数判断一个数是否为素数。要求输入输出均在主函数中完成。
【输入形式】
一个数
【输出形式】
这个数等于两素数之和的形式,并且这两素数是第一对满足条件的素数(表达式中间不包含空格)。
【样例输入】
8
【样例输出】
8=3+5
解析
很简单,就是判断两个和为n的数是否分别为质数即可。
#include<iostream>
using namespace std;
bool prime(int k)
{
bool b=1;
for(int i=2;i<=k/i;i++)
if(k%i==0)
{
b=0;
break;
}
return b;
}
int main()
{
int n;
cin>>n;
for(int i=2;i<=n/2;i++)
if(prime(i)&&prime(n-i))
{
cout<<n<<"="<<i<<"+"<<n-i<<endl;
break;
}
}