筛法求素数
code:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#define MAXN 35000
using namespace std;
bool prime[MAXN];
void is_prime()
{
int i, j;
for(i=2; i<MAXN; i++)
{
if(prime[i]==0)
for(j=i+i; j<MAXN; j+=i)
prime[j]=1;
}
}
int main()
{
memset(prime, 0, sizeof(prime));
is_prime();
int n, m;
while(scanf("%d", &n), n)
{
int count(0);
m=n/2;
for(int i=2; i<=m; i++)
{
if(prime[i]==0)
{
if(prime[n-i]==0)
count++;
}
}
printf("%d\n", count);
}
return 0;
}
作者:FreeAquar
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。