How many prime numbers
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14873 Accepted Submission(s): 5150
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
这一次在做,发现:i*i 这个条件用上都会超时,真是卡系数啊...........
以后还是多注意点吧,要不然会做的还是wa,养成个好习惯还是比较好的...........
#include<stdio.h>
#include<math.h>
int is_prime(int x)
{
int tp=(int)sqrt(x*1.0);
for(int i=2;i<=tp;++i)
{
if(x%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
int ans=0,tp;
for(int i=0;i<n;++i)
{
scanf("%d",&tp);
if(tp==2)
{
++ans;
}
else if(tp&1)
{
ans+=is_prime(tp);
}
}
printf("%d\n",ans);
}
return 0;
}