主题:Goldbach's Conjecture
http://acm.hrbeu.edu.cn/index.php?act=problem&proid=2011
针对这道题,我写了一段代码,可是提交的时候报错了,可是我看不车哪里错了,请大侠们指正!万分感谢!!
#include <iostream>//包含头文件
using namespace std;
int main()
{
int m,j,t,i;//定义变量
while(cin>>m)
{
if(m<6||m>=1000000)//不符合条件就跳出
break;
bool a;
for(i=3;i<=m/2;i+=2)
{
a=0;
for(j=2;j<i;)//判断i是否为素数
{
if(i%j==0)//不是的话,将a转为真
{
a=1;
break;
}
if(i!=2)
j=j+2;
else j++;
}
if(a)
continue;//如果不为素数,则转到循环首部
t=m-i;
for(j=2;j<t;)//判断m-i是否为素数
{
if(t%j==0)//不是的话,将a转为真
{
a=1;
break;
}
if(i!=2)
j=j+2;
else j++;
}
if(a)
continue;//如果不为素数,则转到循环首部
else break;
}
if(!a)
cout<<m<<'='<<i<<'+'<<m-i<<endl;
else cout<<"Goldbach's conjecture is wrong."<<endl;
}
system("pause");
return 0;
}
针对这道题,我写了一段代码,可是提交的时候报错了,可是我看不车哪里错了,请大侠们指正!万分感谢!!
#include <iostream>//包含头文件
using namespace std;
int main()
{
int m,j,t,i;//定义变量
while(cin>>m)
{
if(m<6||m>=1000000)//不符合条件就跳出
break;
bool a;
for(i=3;i<=m/2;i+=2)
{
a=0;
for(j=2;j<i;)//判断i是否为素数
{
if(i%j==0)//不是的话,将a转为真
{
a=1;
break;
}
if(i!=2)
j=j+2;
else j++;
}
if(a)
continue;//如果不为素数,则转到循环首部
t=m-i;
for(j=2;j<t;)//判断m-i是否为素数
{
if(t%j==0)//不是的话,将a转为真
{
a=1;
break;
}
if(i!=2)
j=j+2;
else j++;
}
if(a)
continue;//如果不为素数,则转到循环首部
else break;
}
if(!a)
cout<<m<<'='<<i<<'+'<<m-i<<endl;
else cout<<"Goldbach's conjecture is wrong."<<endl;
}
system("pause");
return 0;
}