小学生新人求高手解答问题!谢谢
我是小学生,暑假刚学习C++,遇到如下问题,求大神解决!谢谢!写一个奇数能分解成三个质数的和程序。judge是判断一个数是不是质数的,主程序调用judge函数。
但在编译运行的时候,输入奇数9,为什么会出现两行n=3+3+3
怎么解决这个问题?为什么会出现两行同样的n=3+3+3?跪求解答!
#include<iostream>
#include<math.h>
using namespace std;
int judge(int x)
{
int i;
for(i=2;i<=x/2;i++)
{
if(x%i==0)
{
return 0;
}
}
if(x!=1)
return 1;
}
int main( )
{
int a,b,c,d,i1,i2,n;
cin>>n;
for(i1=2;i1<=n-1;i1++)
{
if(judge(i1)==1)
{
a=i1;
b=n-a;
}
for(i2=2;i2<=b-1;i2++)
{
if(judge(i2)==1)
{
c=i2;
d=n-c-a;
if(judge(d)==1&&a<=c&&a<=d&&c<=d)
{
cout<<"n="<<a<<"+"<<c<<"+"<<d<<endl;
}
}
}
}
}
[此贴子已经被作者于2017-7-28 23:59编辑过]