质数 :: 硕大的汤姆

突然想知道第n个质数是多少,比如说我的生日是11月24日,那么属于我的那个质数是多少呢?

先写个判断一个数是不是质数的函数

bool isPrime(int n){
  if (n == 1){
    return false;
  }else {
    for (int i = 2; i <= floor(sqrt(n)); i++){
      if (n % i == 0){
          return false;
      }
    }
    return true;
  }
}

然后调用它

int main()
{
  int n;
  cin >> n;
  int count = 0;
  int j = 2;
  while (true) {
    if (isPrime(j)){
      count += 1;
      cout << j << endl;
      if (count >= n)
      {
          break;
      }
    }
    j += 1;
  }
}

结果显示第1124个质数为9043。

多玩几次,第112个质数为613,第11240个质数为119293。可以发现,质数在慢慢变稀疏。