总时间限制:
1000ms
内存限制:
65536kB
描述
输入一个正整数n,求第n小的质数。
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
代码
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,cnt=0,n;
scanf("%d",&n);
if(n==1)
{
printf("2");
return 0;
}
for(i=3;;i++)
{
for(j=2;j<=sqrt(i);j++) if(i%j==0)break;
if(j>sqrt(i)) cnt++;
if(cnt==n-1)break;
}
printf("%d",i);
return 0;
}
代码详解
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
int i,j;
int sum=0;
cin>>n;
for(i=2;; i++)
{
for(j=2; j<=sqrt(i)&&i%j!=0; j++); //判断i是否为素数
if(j>sqrt(i))//若是素数
{
sum++;//累加sum,该数是第sum小的
if(sum==n)
{
cout<<i<<endl;
break;
}
}
}
return 0;
}
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29