hdu acm-step 2.1.2 How many prime numbers
Posted mtl6906
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu acm-step 2.1.2 How many prime numbers相关的知识,希望对你有一定的参考价值。
本题题意:给出n个数,求其中素数的个数.
代码如下:
#include <cstdio> #include <cmath> using namespace std; bool prime(int n) { if(n == 2)return true; if(n % 2==0)return false; int s = sqrt(n); int i; for(i=3;i<=s;i+=2) { if(n%i==0)break; } if(i > s)return true; return false; } int main() { int n; while(scanf("%d",&n)==1) { int a,count=0; for(int i=0;i<n;i++){scanf("%d",&a);if(prime(a))count++;} printf("%d\\n",count); } return 0; }
由于本题的上限可达31bit,所以打表是不适用了,只能写个素数判定排除偶数,然后开方,直接暴力目测会超时。
以上是关于hdu acm-step 2.1.2 How many prime numbers的主要内容,如果未能解决你的问题,请参考以下文章
hdu acm-step 2.1.7 Balloon Comes!