ACM-steps-2.1.2--判别素数

来源:互联网 发布:返奖软件 编辑:程序博客网 时间:2024/06/04 08:43

How many prime numbers

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8510 Accepted Submission(s): 2716
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
32 3 4
 

Sample Output
2
 

Author
wangye
 

Source
HDU 2007-11 Programming Contest_WarmUp

注意的点:
在判别n是否为素数时,只需要循环到sqrt(n),即可。
n=sqrt(n)*sqrt(n);
n=x*y;假设x>sqrt(n),则y<sqrt(n);
循环到sqrt(n),则不会超时。
#include<iostream>#include<cmath>using namespace std;bool judge(int a){    for(int i=2;i<=sqrt(a);i++)    {        if(a%i==0)        return  false;    }    return true;}int main(){    int a,T,cnt;    while(cin>>T)    {        cnt=0;    while(T--)    {        cin>>a;        if(judge(a))        cnt++;    }    cout<<cnt<<endl;    }    return 0;}


0 0
原创粉丝点击