【欧拉计划第 7 题】第 10001 个素数 10001st prime

简介: 【欧拉计划第 7 题】第 10001 个素数 10001st prime

Problem 7 10001st prime

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10 001st prime number?

问题 7 第 10001 个素数

通过列出前六个素数:2、3、5、7、11 和 13,我们可以看到第 6 个素数是 13。

第10001个质数是多少?

思路分析

读完题目,发现题目还是比较容易的。枚举出范围内所有的素数,加入循环判断,等到判断条件是第 100001 个质数时输出就好

质数

另外需要知道质数的概念

质数(又称素数),指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数

下面介绍一种比较容易理解的,在程序中判断数字是否为质数的方法

因为,一个数如果可以进行因数分解,那么分解后,得到的两个数一定是一个小于等于 s q r t ( n ) sqrt(n)sqrt(n),一个大于等于 s q r t ( n ) sqrt(n)sqrt(n)

所以,我们并不需要从 2 一直判断到 n − 1 n-1n1 ,而只需遍历到 s q r t ( n ) sqrt(n)sqrt(n) 即可。既然在左侧都找不到因数,那么右侧一定不存在咯

贴下实现的代码,帮助理解

bool is_prime(int num)
{
    for (int i = 2; i <= sqrt(num); i++)
        if (num % i == 0)
            return false;
    return true;
}

代码实现

/*
 * @Author: coder-jason
 * @Date: 2022-04-13 16:25:25
 * @LastEditTime: 2022-04-13 16:53:03
 */
#include <bits/stdc++.h>
using namespace std;
int flag = 0; // 标记当前是第几个素数
bool is_prime(long long num)
{
    for (long long i = 2; i <= sqrt(num); i++)
        if (num % i == 0)
            return false;
    return true;
}
int main()
{
    long long i; // 注意考虑数据范围大小
    for (i = 2; flag < 10001; i++)
        if (is_prime(i)) // 只有该数是素数,标记才自增 1
            flag++;
    cout << i << endl;
    return 0;
}

答案:104743



相关文章
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
1211 1
|
缓存 应用服务中间件 Apache
javax.imageio.IIOException: Can‘t create output stream!(验证码图片不显示)
javax.imageio.IIOException: Can‘t create output stream!(验证码图片不显示)
|
机器学习/深度学习 数据可视化 算法
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
2631 7
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
|
SQL 运维 Java
SpringBoot集成Flyway
Flyway:官方解释:Flyway 将 DevOps 扩展到您的数据库,以加速软件交付并确保代码质量。从版本控制到持续交付,Flyway 以应用程序交付流程为基础,实现数据库部署自动化。 官方解释总是那么拗口和不说人话,当然通过加粗的关键字我们基本也能够了解到Flyway的功能特性。 通俗来说,Flyway可以作为数据库迁移工具服务到我们的应用程序升级发布流程中,减少人为处理sql脚本带来的繁琐和易出错问题。 例如,当我们的一个业务微服务从1.5.0升级到1.5.1的时候涉及到数据库的改动(DDL、DML)可以交给Flyway处理,我们无需关心。
2136 0
|
存储 Prometheus Kubernetes
使用loki和grafana展示ingress-nginx的日志
使用loki和grafana展示ingress-nginx的日志
使用loki和grafana展示ingress-nginx的日志
|
Ubuntu 安全 关系型数据库
轻松搭建MySQL 8.0:Ubuntu上的完美指南
轻松搭建MySQL 8.0:Ubuntu上的完美指南
699 1
|
机器学习/深度学习 自然语言处理 算法
原作者带队,LSTM卷土重来之Vision-LSTM出世
【6月更文挑战第14天】Vision-LSTM (ViL) 研究复兴了LSTM在计算机视觉领域的应用,通过xLSTM模型解决了处理大规模图像数据的效率问题。ViL模型采用堆叠的xLSTM块,从不同方向处理图像,增强上下文理解和空间结构捕获,从而在图像分类、目标检测等任务上展现出与Transformer相当甚至更好的性能。尽管存在梯度问题、模型复杂性和潜在替代风险,ViL模型的竞争力和较低的计算复杂度使其在实践中颇具吸引力。[论文链接](https://arxiv.org/abs/2406.04303)
405 2
|
Linux 测试技术 虚拟化
解决虚拟机文件因快照占用硬盘空间较多的情况(压缩虚拟机文件,节省硬盘空间)
解决虚拟机文件因快照占用硬盘空间较多的情况(压缩虚拟机文件,节省硬盘空间)
1355 1
|
传感器 机器学习/深度学习 算法
Nvidia Isaac Sim介绍 入门教程 2024(1)
Nvidia Isaac Sim是一个为NVIDIA Omniverse平台开发的机器人仿真工具包,提供高保真度的物理仿真和多传感器RTX渲染,支持ROS2并能够生成合成数据集,用于机器人的设计、调试、训练和部署。
3306 0
|
存储 NoSQL Redis
pyhon之对memcached及redis操作
pyhon之对memcached及redis操作