质数

  1. 题目:
    我们知道第一个质数是 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))

posted @ 2022-03-04 15:54  自然力  阅读(210)  评论(0)    收藏  举报