[2016-04-21][HDU][2161][Primes]
[2016-04-21][HDU][2161][Primes]
时间:2016-04-21 15:46:12 星期四
题目编号:[2016-04-21][HDU][2161][Primes]
题目大意:问第n个数字是否是素数,
分析:n的范围只有1E6,直接筛一遍
遇到的问题:这里定义 1和 2 都不是素数
#include<cstdio>#include<cstring>using namespace std;const int maxn = 2 * 1E4;int isnpri[maxn];void getPri(){memset(isnpri,0,sizeof(isnpri));for(int i = 2 ; i < maxn ; ++i){if(isnpri[i]) continue;for(int j = i * 2;j < maxn ; j += i){isnpri[j] = 1;}}isnpri[1] = isnpri[2] = 1;}int main(){getPri();int n,cntcase = 0;while(~scanf("%d",&n) && n > 0){printf("%d: ",++cntcase);puts(isnpri[n]?"no":"yes");}return 0;}
浙公网安备 33010602011771号