杭电-2138-How many prime numbers

How many prime numbers

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10368 Accepted Submission(s): 3380

Problem Description
Give you a lot of positive integers, just to find out how many prime numbers there are.
 

Input
There are a lot of cases. In each case, there is an integer N representing the number of integers to find. Each integer won’t exceed 32-bit signed integer, and each of them won’t be less than 2.
 

Output

            For each case, print the number of prime numbers you have found out.
 

Sample Input
3
2 3 4
 

Sample Output
2
 

PS:这道题很水也很坑,一开始看到统计素数个数,就想到打表,但是居然超时了,于是一个一个判断,还是超时,最后没办法看看网上代码

  郁闷的很,为什么代码一样,网上的AC了,我的就超时了。。。

我的代码:

#include<stdio.h>

int main()
{
    int t;
    while (scanf("%d", &t) != EOF)
    {
        int ans = 0;
        while (t--)
        {
            int n;
            scanf("%d", &n);
            bool is = true;
            for (int i = 2; i * i <= n; ++i)
            {
                if (n % i == 0)
                {
                    is = false;
                    break;
                }
            }
            if (is)
            {
                ans++;
            }
        }
        printf("%d\n", ans);
    }

    return 0;
}

网上的代码:

#include<iostream>
#include<math.h>
using namespace std;
#define N 100000000
int main()
{
    int n,b,s,f,i;
    while(scanf("%d",&n)!=EOF)
    {
        s=0;
        while(n--)
        {
            scanf("%d",&b);
            f=0;
            for(i=2;i<=sqrt(b*1.0);i++)
                if(b%i==0)
                {f=1;break;}
                if(!f)s++;
        }
        printf("%d\n",s);
    }
    return 0;
}

 

posted on 2016-03-13 00:55  小熊_dream  阅读(111)  评论(0)    收藏  举报

导航