3609 - 找素数(蓝桥杯2012决赛第1题)
素数就是不能再进行等分的整数。比如:7,11。
而9不是素数,因为它可以平分为3等份。
一般认为最小的素数是2,接着是3,5,...
请问,第100002(十万零二)个素数是多少?
请注意:“2” 是第一素数,“3” 是第二个素数,依此类推。
Input
Output
Examples
Input
Output
Solution C
#include<stdio.h> #include<math.h> int main() { printf("1299743"); }
Solution C++
#include<iostream> #include<algorithm> using namespace std; int p[4]={1,4,9,9}; int isprime(int n) { int i; for(i=2;i*i<=n;i++) { if(n%i==0) return 0; } return 1; } int main() { int cnt=0; int i; for(i=2;cnt!=100002;i++) { if(isprime(i)) cnt++; } cout<<i-1; return 0; }