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
如上,应该加一条判断
by lwzheng00000 @ 2018-08-10 16:15:07
@卢安来 thx
by lwzheng00000 @ 2018-08-10 16:16:25
@卢安来 AC了,thx