1. 程式人生 > >poj 2262 Goldbach's Conjecture——篩質數(水!)

poj 2262 Goldbach's Conjecture——篩質數(水!)

con poj namespace ios print sca esp ret ++

題目:http://poj.org/problem?id=2262

大水題的篩質數。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=1e6;
int n,pri[N+5],cnt;
bool vis[N+5];
void init()
{
  for(int i=2;i<=N;i++)
    {
      if(!vis[i])pri[++cnt]=i;
      for(int j=1;j<=cnt&&(long
long)i*pri[j]<=N;j++) { vis[i*pri[j]]=1; if(i%pri[j]==0)break; } } } int main() { init(); while(1) { scanf("%d",&n);if(!n)return 0; bool flag=0; for(int i=2;i<=cnt&&n>pri[i];i++) if(!vis[n-pri[i]]) { printf(
"%d = %d + %d\n",n,pri[i],n-pri[i]); flag=1;break; } if(!flag)printf("Goldbach‘s conjecture is wrong.\n"); } }

poj 2262 Goldbach's Conjecture——篩質數(水!)