首页 > 其他 > 详细

hdu acm-step 2.1.2 How many prime numbers

时间:2017-08-19 20:36:57      阅读:137      评论:0      收藏:0      [点我收藏+]

 技术分享

   本题题意:给出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

原文:http://www.cnblogs.com/mtl6906/p/7397769.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!