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

相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
weilx12342 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
Smileyqp沛沛2 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车2 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
吞下星星的少年·-·2 天前
C++ 萌新语法入门篇
c++·算法比赛