http://poj.org/problem?id=2262
题意:
|
一个数哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个质数之和。题中给出的范围是成立的,所以不用考虑:Goldbach's conjecture is wrong.
这道题让我知道了,想问题的过程去努力发现规律,去优化它。
#include<iostream>
#include<cstdio>
using namespace std;
int prime(int n)
{
if(n == 1) return false;
if(n == 2) return true;
if(n%2 == 0) return false;
for(int i = 3;i*i <= n; i++)
if(n%i == 0)
return false;
return true;
}
int main()
{
int n;
while(cin>>n,n){
int i;
int t = n/2;
for(i = 3;i <= t; i+=2){
if(prime(i) && prime(n-i))
break;
}
cout<<n<<" "<<"= "<<i<<" + "<<n-i<<endl;
}
return 0;
}