思路:数据范围1e6线性筛法筛出所有质数,遍历所有素数prm[i]判断n-prm[i]是否为素数,是则输出答案
代码:
思路:数据范围1e6线性筛法筛出所有质数,遍历所有素数prm[i]判断n-prm[i]是否为素数,是则输出答案
代码:
int prm[maxn],cnt;
bool vis[maxn];
void init(int n){
vis[0] = vis[1] = true;
for(int i = 2 ; i <= n ; ++i ){
if(!vis[i]) prm[cnt++] = i;
for(int j = 0 ; prm[j] <= n / i ; ++j){
vis[prm[j] * i] = true;
if(i % prm[j] == 0) break;
}
}
}
void solve(){
init(maxn - 1);
while(cin >> n,n){
for(int i = 0 ; i < cnt ; ++i ){
if(!vis[n - prm[i]]){
cout << n << " = " << prm[i] << " + " << n - prm[i] << endl;
break;
}
}
}
}