题目描述
1742年,德国数学家哥德巴赫在给欧拉的信中提出了著名的哥德巴赫猜想:“任意一个大于4的偶数都可以表示成两个素数之和”举几个简单的例子:
8 = 3 + 5
20 = 3 + 17 = 7 + 13
42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23
这个猜想至今都没有被证明,如今你的任务是用计算机证明在1000000之内哥德巴赫猜想的正确性。
输入格式
一个偶数n(4 < N <= 1000000)
输出格式
输出为N的分解式N= X + Y,其中X和Y要求是素数且X < =Y,若有多种分解方式,输出X最小的那种
样例输入
8
样例输出
8=3+5
程序如下
#include<iostream>
using namespace std;
bool prime(int n)
{
if(n <= 1) return false;
for(int i = 2; i * i <= n; i++)
{
if(n % i == 0) return false;
}
return true;
}
int main()
{
int i,m,n;
cin>>n;
for(i = 1; i < n; i++)
{
if(prime(i) == true)
{
if (prime(n-i) == true)
{
cout<<n<<"="<<i<<"+"<<n-i<<endl;
break;
}
}
}
return 0;
}
————————————————