POJ原址:POJ2262
这道题跟昨天几乎弄了一天的2739差不多,坑没有什么,自己犯的错误到不少,if后面两个语句没有加大括号,判断i==n/2+1写成i=n/2+1,此类错误层次不穷……
参考的好像也是同一个人写的博客:poj2262 - yl198753的专栏
还有就是程序太慢太慢了,水题都能用704ms,至于优化以后再说吧
#include<iostream>
#include<cmath>
using namespace std;
int Isprime(int m)
{
int i;
if(m==0||m==1)
return 0;
for(i=2;(i*i)<=m;i++)
{
if(m%i==0)
break;
}
if((i*i)<=m)
return 0;
else
return 1;
}
int main()
{
int n,i,j;
cin>>n;
while(n)
{
for(i=3;i<=n/2;i++)
{
if(Isprime(i)&&Isprime(n-i))
{
cout<<n<<" = "<<i<<" + "<<n-i<<endl;
break;
}
}
if(i==n/2+1)
cout<<"Goldbach's conjecture is wrong"<<endl;
cin>>n;
}
return 0;
}