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): 14684 Accepted Submission(s): 5091
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
题解:
水暴力,打表不行,由于数据量太大,运行到sqrt(x)就可以;
代码:
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; bool js(int x){ if(x==2)return true; if(x==1||x==0)return false; if(x%2==0)return false; for(int i=3;i<=sqrt(x);i+=2){ if(x%i==0)return false; } return true; } int main(){ int N,a; while(~scanf("%d",&N)){ int cnt=0; for(int i=0;i<N;i++){ scanf("%d",&a); if(js(a))cnt++; } printf("%d\n",cnt); } return 0; }