用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个质数。

相关推荐
阿猿收手吧!9 小时前
【C++】std::promise原理与实战解析
c++
TechWJ9 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
abluckyboy10 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
lly20240610 小时前
C++ 文件和流
开发语言
园小异10 小时前
2026年技术面试完全指南:从算法到系统设计的实战突破
算法·面试·职场和发展
m0_7066532310 小时前
分布式系统安全通信
开发语言·c++·算法
Zach_yuan10 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
寻寻觅觅☆10 小时前
东华OJ-基础题-104-A == B ?(C++)
开发语言·c++
lightqjx10 小时前
【C++】unordered系列的封装
开发语言·c++·stl·unordered系列
天天爱吃肉821811 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车