用c++求第n个质数

首先要了解什么是质数

质数又称素数。一个大于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个质数。

相关推荐
旖旎夜光19 小时前
C++(17)
c++·学习
Larry_Yanan20 小时前
Qt多进程(三)QLocalSocket
开发语言·c++·qt·ui
醒过来摸鱼20 小时前
Java classloader
java·开发语言·python
superman超哥20 小时前
仓颉语言中元组的使用:深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
小鸡吃米…21 小时前
Python - 继承
开发语言·python
JIngJaneIL21 小时前
基于java+ vue农产投入线上管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
祁思妙想21 小时前
Python中的FastAPI框架的设计特点和性能优势
开发语言·python·fastapi
LYFlied21 小时前
【每日算法】LeetCode 153. 寻找旋转排序数组中的最小值
数据结构·算法·leetcode·面试·职场和发展
唐装鼠21 小时前
rust自动调用Deref(deepseek)
开发语言·算法·rust
Lucas5555555521 小时前
现代C++四十不惑:AI时代系统软件的基石与新征程
开发语言·c++·人工智能