第n小的质数
1000ms 32767K
蒜头君有一个正整数 nnn,他想求第 nnn 小的质数。输入格式一个不超过 100001000010000 的正整数 nnn。输出格式第 nnn 小的质数。 输出时每行末尾的多余空格,不影响答案正确性
样例输入 复制
10
样例输出 复制
29
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k=0,n;
scanf("%d",&n);
for(i=2; ;i++)
{
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
break;
}
if(j>sqrt(i))
k++;
if(k==n)
break;
}
printf("%d\n",i);
return 0;
}
j<=sqrt(i)是为了将搜索的范围缩小一下
搜索范围缩小了很多,自然运行的效率就上去了