质数
- 题目:
我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……
请你计算第 2019 个质数是多少?
2.代码实现:
点击查看代码
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,sum;
for(i=2;sum!=2019;i++){
for(j=2;j<sqrt(i);j++){
if(i%j==0){
break;
}
}
if(j>sqrt(i)){
sum++;
}
}
printf("%d",i-1);
return 0;
}
试除法判断质数,其实本质是根据质数的定义进行暴力枚举,但是我们可以通过质数的一个性质,来优化循环的次数,这个性质就是: 如果d是n的约数,那么 n / d也是 n 的约数,即一个数的约数是成对出现的 通过这个性质可以优化试除法,时间复杂度由O(n)变为O(sqrt(n))

浙公网安备 33010602011771号