首先要了解什么是质数
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)
那判断一个数是否是质数通常使用试除法,就是从2开始,一直到sqrt(n),检查有没有能整除的数。如果有,那么n不是质数;如果没有,就是质数。
了解了这些,那么就开始针对这些进行程序编写。
cpp
#include <iostream>
#include <math.h>
using namespace std;
bool isPrime(int n){
if (n <= 1)
return false;
if (n == 2)
return true;
if (n % 2 == 0)
return false; // 偶数且大于2,不是质数
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0)
return false;
}
return true;
}
int main(){
int n , add = 0 , num = 0;
cin >> n;
while(n > add){
num++;
if(isPrime(num)){
add++;
}
}
cout << num << endl;
return 0;
}
利用方法isPrime 来判断这个数是否是质数,是的话就返回true, 否则就返回false。
用while循环来进行判断,一直到第n个质数出现为止,然后输出此时的数字num,就是第n个质数。