hdu 2138 How many prime numbers (素数判定)

2015-01-27 06:14:33 · 作者: · 浏览: 7

How many prime numbers

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8205 Accepted Submission(s): 2642
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
Author wangye
Source HDU 2007-11 Programming Contest_WarmUp





解题思路:直接判定是否为素数即可。




AC代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
          #include 
          
            #include 
           
             #include 
            
              #include 
             
               using namespace std; #define INF 0x7fffffff bool isprim(int n){ //判断是否为素数 for(int i=2; i<=(double)sqrt((double)n); i++){ if(n%i == 0) return false; } return true; } int main() { #ifdef sxk freopen("in.txt","r",stdin); #endif int n, x, ans; while(scanf("%d",&n)!=EOF) { ans = 0; //计数 while(n--){ scanf("%d", &x); if(isprim(x)) ans ++; } printf("%d\n", ans); } return 0; }