PAT 乙級 1007 題解 (Basic Level) Practice
阿新 • • 發佈:2019-01-12
先打素數表,再計算
#include<stdio.h> #include<string.h> #include<vector> using namespace std; int main() { int N; scanf("%d",&N); if(N==2) { printf("0"); return 0; } N=N+1; int number[N]; memset(number,1,sizeof(number)); int i,j; vector<int> v; for(i=2;i<N;i++) { if(number[i]==0) continue; v.push_back(i); //printf("%d ",i); if((long long)i*i>N) continue; for(j=i*i;j<N;j+=i) number[j]=0; } for(i=1,j=0;i<v.size();i++) if(v[i]-v[i-1] == 2) j++; printf("%d",j); return 0; }