hdu2098 分拆素数和 素数筛

时间:2023-03-09 01:09:53
hdu2098 分拆素数和 素数筛

将一个偶数拆成两个素数的和,欧拉筛暴力

 #include<stdio.h>
#include<string.h>
#define N 10001
int prime[];
bool check[];
int n,i,ans,tot=,j; void EulerPrime(){
memset(check,false,sizeof(check));
for(i=;i<=N;i++){
if(!(check[i]))prime[tot++]=i;
for(j=;j<tot;j++){
if(i*prime[j]>N)break;
check[i*prime[j]]=true;
if(i%prime[j]==)break;
}
}
} int main(){
EulerPrime();
while(scanf("%d",&n)!=EOF&&n!=){
i=,ans=;
while(prime[i]<n/){
if(check[n-prime[i]]==)ans++;
i++;
}
printf("%d\n",ans);
}
return ;
}