题意:将一个数拆成两个合数的和, 输出这两个数!(这道题做的真是TMD水啊)开始的时候不知道composite numbers是啥意思,看了3遍才看懂....
看懂之后又想用素数筛选法来做,后来决定单个判断一个数是否为素数的方法来写,结果写错了两次,快疯掉了简直....
1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 #include<algorithm> 5 #include<cmath> 6 #include<cstring> 7 #define N 1000005 8 using namespace std; 9 10 bool prime(int x){ 11 int n = (int)sqrt(x*1.0); 12 int i; 13 for(i=2; i<=n; ++i) 14 if( x % i == 0) 15 break; 16 if(i>n) return true; 17 return false; 18 } 19 20 int main(){ 21 22 int n; 23 cin>>n; 24 for(int i=4; i<=n/2; ++i){ 25 if( !prime(i) && !prime(n-i)){ 26 cout<<i<<" "<<n-i<<endl; 27 break; 28 } 29 } 30 return 0; 31 } 32
本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/3999986.html,如需转载请自行联系原作者