poj 2262 Goldbach's Conjecture——筛质数(水!)

时间:2023-03-09 04:57:07
poj 2262 Goldbach's Conjecture——筛质数(水!)

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

大水题的筛质数。

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