hdu 2138 How many prime numbers (素數判定),hdu2138
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 DescriptionGive you a lot of positive integers, just to find out how many prime numbers there are. |
| InputThere 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 |
| Authorwangye |
| SourceHDU 2007-11 Programming Contest_WarmUp |
解題思路:直接判定是否為素數即可。
AC代碼:
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;#define INF 0x7fffffffbool 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;}