有这么一个程序,作用是求一个数字分解成两个质数之和,我的编写是:(此编写是正确的)
#include <iostream>using namespace std;
int main()
{
int m,a,b,i,j;
bool x;
cin>>m;
for (a=3;a<=m/2;a++)
{
x=0;
for (i=2;i<=a/2;i++)
{
if (a%i==0)
x=1;
}
if (x==1)
continue;
b=m-a;
for (j=2;j<=b/2;j++)
{
if (b%j==0)
x=1;
}
if (x==1)
continue;
cout<<a<<" "<<b<<endl;
}
return 0;}
我想知道的是,为什么我改成这样就不正确了呢?
#include <iostream>using namespace std;
int main()
{
int m,a,b,i,j;
bool x;
cin>>m;
for (a=3;a<=m/2;a++)
{
x=0;
for (i=2;i<=a/2;i++)
{
if (a%i==0)
x=1;break;
}
if (x==1)
continue;
b=m-a;
for (j=2;j<=b/2;j++)
{
if (b%j==0)
x=1;break;
}
if (x==1)
continue;
cout<<a<<" "<<b<<endl;
}
return 0;}
注意,我只在循环语句中加入了两个break语句
守候你守候我
慕容森
天涯尽头无女友
慕婉清6462132
相关分类