/*
* POJ_2262.cpp
*
* Created on: 2013年10月7日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
int su[1000010];
bool u[1000010];
int num;
int n;
void prepare(){
int i,j;
memset(u,true,sizeof(u));
for(i = 2 ; i <= 1000010 ; ++i){
if(u[i]){
su[++num] = i;
}
for(j = 1 ; j <= num ; ++j){
if(i*su[j] > 1000010){
break;
}
u[i*su[j]] = false;
if(i % su[j] == 0){
break;
}
}
}
}
int main(){
prepare();
while(scanf("%d",&n)!=EOF,n){
bool ok = false;
int i ;
for(i = 2 ; i <= num ; ++i){
if(su[i] * 2 > n){
break;
}
if(u[n - su[i]]){
ok = true;
break;
}
}
printf(ok?"%d = %d + %d\n":"Goldbach's conjecture is wrong.\n",n,su[i],n-su[i]);
}
}
(数论2.1.1)POJ Goldbach's Conjecture(欧拉筛法)
最新推荐文章于 2024-07-04 00:53:10 发布