五十分,求助

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

lwzheng00000 @ 2018-08-10 16:08:47

50分,求助

基本思路和第一个题解类似

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
bool isprime(int x){
    for(int i=2;i<=sqrt(x);i++){
        if(x%i==0) return false;
    }
    return true;
}
int main(){
    int n;
    scanf("%d",&n);
    int ny;
    for(int i=2;i<=n;i++){
        for(int j=2;j<=n;j++){
            ny=n-(i+j);
            if(isprime(i)&&isprime(j)&&isprime(ny)){
                printf("%d %d %d",i,j,ny);
                return 0;
            }
        }
    }
    return 0;
}

by agicy @ 2018-08-10 16:14:09

这个程序输入为:

999

输出为:

2 997 0

by lwzheng00000 @ 2018-08-10 16:14:45

知道错在哪里了

i,j最大不能到n


by agicy @ 2018-08-10 16:14:55

@lwzheng00000

如上,应该加一条判断ny≠0


by lwzheng00000 @ 2018-08-10 16:15:07

@卢安来 thx


by lwzheng00000 @ 2018-08-10 16:16:25

@卢安来 AC了,thx


|