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 1.3.7 排列2

hdu acm-step 2.1.3 相遇周期

hdu acm-step 2.1.7 Balloon Comes!

hdu acm-step 1.3.6 Wooden Sticks

hdu acm-step 2.1.5 又见GCD

hdu acm-step 2.1.1 最小公倍数