用素数筛选法选素数,记得用bool类型的来赛选否则空间不够用
#include<cstdio>
#include<cstring>
#include<cmath>
typedef long long int ll;
const int mx = 1e7;
int prime[mx/10+5];
bool vis[mx+5];
int len = 0;
void init(){
vis[1] = 1;
for(int i = 2; i <= mx; i++)
if(!vis[i]) {
prime[len++] = i;
for(int j = 2*i; j <= mx; j += i)
vis[j] = 1;
}
}
int main(){
int t;
init();
scanf("%d",&t);
int n;
for(int casei = 1; casei <= t; casei++){
int ans = 0;
scanf("%d",&n);
for(int i = 0; i < len && prime[i] <= n/2; i++)
if(!vis[n-prime[i]])
ans++;
printf("Case %d: %d\n",casei,ans);
}
return 0;
}