题意:将一个数拆成两个合数的和, 输出这两个数!(这道题做的真是TMD水啊)开始的时候不知道composite numbers是啥意思,看了3遍才看懂....
看懂之后又想用素数筛选法来做,后来决定单个判断一个数是否为素数的方法来写,结果写错了两次,快疯掉了简直....
#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define N 1000005
using namespace std;
bool prime(int x){
int n = (int)sqrt(x*1.0);
int i;
for(i=2; i<=n; ++i)
if( x % i == 0)
break;
if(i>n) return true;
return false;
}
int main(){
int n;
cin>>n;
for(int i=4; i<=n/2; ++i){
if( !prime(i) && !prime(n-i)){
cout<<i<<" "<<n-i<<endl;
break;
}
}
return 0;
}