杭电-2138-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): 10368 Accepted Submission(s): 3380 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
PS:这道题很水也很坑,一开始看到统计素数个数,就想到打表,但是居然超时了,于是一个一个判断,还是超时,最后没办法看看网上代码
郁闷的很,为什么代码一样,网上的AC了,我的就超时了。。。
我的代码:
#include<stdio.h> int main() { int t; while (scanf("%d", &t) != EOF) { int ans = 0; while (t--) { int n; scanf("%d", &n); bool is = true; for (int i = 2; i * i <= n; ++i) { if (n % i == 0) { is = false; break; } } if (is) { ans++; } } printf("%d\n", ans); } return 0; }
网上的代码:
#include<iostream> #include<math.h> using namespace std; #define N 100000000 int main() { int n,b,s,f,i; while(scanf("%d",&n)!=EOF) { s=0; while(n--) { scanf("%d",&b); f=0; for(i=2;i<=sqrt(b*1.0);i++) if(b%i==0) {f=1;break;} if(!f)s++; } printf("%d\n",s); } return 0; }
浙公网安备 33010602011771号