fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. vector<int> sosu;
  6. bool isPrime[1000002];
  7.  
  8. void check(int num){
  9. int sum = num + num;
  10. while(sum <= 1000000){
  11. isPrime[sum] = false;
  12. sum += num;
  13. }
  14. }
  15.  
  16. int main() {
  17.  
  18. fill_n(isPrime,1000002,1);
  19.  
  20. for(int i = 2; i <= 1000000; i++){
  21. if(!isPrime[i]) continue;
  22. sosu.push_back(i);
  23. check(i);
  24. // printf("%d ",i);
  25. }
  26.  
  27. int T;
  28.  
  29. scanf("%d",&T);
  30.  
  31. for(int t = 0; t < T; t++){
  32. int n;
  33. scanf("%d",&n);
  34. int cnt = 0;
  35.  
  36. for(int a = 2; a <= n/2; a++){
  37. int b = n - a;
  38. if(isPrime[a] && isPrime[b]){
  39. cnt++;
  40. }
  41. }
  42. printf("%d\n",cnt);
  43.  
  44.  
  45. }
  46.  
  47.  
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 4800KB
stdin
5
6
8
10
12
100
stdout
1
1
2
1
6