求解为什么我的代码是无限输出啊?

P1579 哥德巴赫猜想(升级版)

Dog_Two @ 2017-04-14 17:49:41

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
void solve(int);
int zs(int);
int n;
int main()
{
    scanf("%d",&n);
    solve(n);
    return 0;
}
void solve(int a)
{
    for(int i=2;i<=n-4;i++)
    {
        for(int j=2;j<=n-4;j++)
        {
            int c=n-i-j;
            if(zs(i)==1&&zs(i)==1&&zs(j)==1)
            {
                printf("%d %d %d",i,j,c);
            }
        }
    }
}
int zs(int a)
{
    if(a==1)
    {
        return 0;
    }
    for(int i=2;i*i<=a;i++)
    {
        if(a%i==0)
        {
            return 0;
        }
    }
    return 1;
}
代码如上,无限输出不合题意的质数。

by tumult_2 @ 2017-04-19 13:00:21

搜到了请Return,还有,c没有判定

把if(zs(i)==1&&zs(i)==1&&zs(j)==1)

改为if(zs(i)==1&&zs(c)==1&&zs(j)==1)

@七月飞雪


by Dog_Two @ 2017-05-10 22:20:36

@朱晨煊 _(:зゝ∠)_已经修改代码了,感谢斧正


|