bjrjk @ 2016-11-14 22:19:33
#include<iostream>
#include<math.h>
using namespace std;
int prime[20000];
bool isprime(int n){
int s=sqrt((double)n);
for(int i=2;i<=s;i++){
if(n%i==0)return false;
}
return true;
}
int main(){
int n;
cin>>n;
int prime_ptr=0;
for(int i=2;i<20000;i++){//为什么原来这里i<n就只过6个点,改成2w就AC呢?
if(isprime(i)){prime[prime_ptr]=i;
prime_ptr++;}
}
for(int i=0;i<prime_ptr&&prime[i]<=n;i++){
for(int j=0;j<prime_ptr&&prime[i]+prime[j]<=n;j++){
int t=n-prime[i]-prime[j];
if(isprime(t)&&t>0){
cout<<prime[i]<<" "<<prime[j]<<" "<<t;
cin>>n;
return 0;
}
}
}
}
by 制杖 @ 2016-11-18 19:57:17
你猜 ###############****____>>>>____****
by hongxuran @ 2016-11-23 17:09:41
var i:integer;
a:gjd
by 圣弗朗西斯科 @ 2016-12-08 12:14:28
我的也是i<n;但过了。