注:1不是质数,所以要从2开始数
问题描述
描述
输入一个正整数n,求第n小的质数。
输入
一个不超过10000的正整数n。
输出
第n小的质数。
代码
#include<stdio.h>
#include<math.h>
//判断质数
int prime(int n)
{
int m=sqrt(n);
for(int i=2;i<=m;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int prime(int n);
int n,count=0;
scanf("%d",&n);
long i;
// 第n小的质数,int型可能装不下,所以声明了long型
//1不是质数,所以这里必须先让i等于2,若等于1会出错
for(i=2;;i++)
{
if(prime(i)1)
count++;
if(countn)
break;
}
printf("%ld",i);
}