欧拉计划第7题:10001st primeBy(质数 质数筛法)

欧拉计划简介,本系列希望以通俗易懂的语言、简洁的代码,带大家体会数学与编程结合的魅力。

Problem 7: 10001 10001 10001st primeBy

标签:质数、质数筛法

原文:By listing the first six prime numbers: 2 2 2, 3 3 3, 5 5 5, 7 7 7, 11 11 11, and 13 13 13, we can see that the 6 6 6th prime is 13 13 13. What is the 10 001 10\ 001 10 001st prime number?

翻译:前 6 6 6个质数分别是 2 2 2 3 3 3 5 5 5 7 7 7 11 11 11 13 13 13。第 10 001 10\ 001 10 001个质数是多少?

题解:质数判定解法时间复杂度 O ( n n ) O(n\sqrt{n}) O(nn ),埃式筛法解法时间复杂度 O ( n l o g l o g n ) O(nloglogn) O(nloglogn),欧拉筛 O ( n ) O(n) O(n)

下面展示一下三种解法的代码。

质数判定 代码

#include <bits/stdc++.h>
using namespace std;bool check(int x) {if (x <= 1) return 0;for (int i = 2; i * i <= x; i++) {if (x % i == 0) return 0;}return 1;
}int main() {int cnt = 0, i = 1;while (1) {if (check(i)) {cnt++;if (cnt == 10001) {cout << i << endl;return 0;}}i++;}return 0;
}

埃式筛法 代码

#include <bits/stdc++.h>
using namespace std;const int N = 2e5 + 10;
bool isPrime[N]; // 0是 1不是质数int main() {isPrime[0] = isPrime[1] = 1;for (int i = 2; i < N; i++) {if (!isPrime[i]) {for (int j = 2 * i; j < N; j += i) {isPrime[j] = 1;}}}int cnt = 0;for (int i = 2; i < N; i++) {if (!isPrime[i]) {cnt++;if (cnt == 10001) {cout << i << endl;return 0;}}}return 0;
}

欧拉筛法 代码

#include <bits/stdc++.h>
using namespace std;const int N = 2e5 + 10;
int prime[N];
bool isPrime[N]; // 0是 1不是质数int main() {isPrime[0] = isPrime[1] = 1;int cnt = 1;for (int i = 2; i <= N; i++) {if (!isPrime[i]) prime[cnt++] = i;for (int j = 1; j < cnt && i * prime[j] <= N; j++) {// 将以prime[j]]为最小质因数的合数筛掉isPrime[i * prime[j]] = 1;// 保证只筛到以prime[j]为最小质因数的数if (i % prime[j] == 0) break;}}cout << prime[10001];return 0;
}

“Project Euler exists to encourage, challenge, and develop the skills and enjoyment of anyone with an interest in the fascinating world of mathematics.”

“欧拉计划的存在,是为了每个对数学感兴趣的人,鼓励他们,挑战他们,并最终培养他们的能力与乐趣。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/733834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

离散数学例题——7.代数系统和群论

代数系统定义 二元运算律 特殊元素 逆元 子代数系统 同态同构 半群和独异点&#xff08;含幺半群&#xff09; 群和阿贝尔群 常见群和群的证明 群的性质 群的幂 群元素的阶 群的同态同构 子群 子群证明

FFmpeg开发笔记(九)Linux交叉编译Android的x265库

《FFmpeg开发实战&#xff1a;从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库&#xff0c;前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库&#xff0c;接下来介绍如何在Linux环境交…

修改简化docker命令

修改|简化docker命令 使用命令打开 .bashrc 文件&#xff1a; vim ~/.bashrc在文件中添加类似以下行来创建别名&#xff1a; # 查看所有容器 alias disdocker images # 查看运行容器 alias dpsdocker ps # 查看所有容器 alias dpsadocker ps -a # 停止容器 alias dsdocker s…

linux中的文件属性是什么?

在Linux系统中,文件的属性(也称为元数据)是指与文件相关的信息,这些信息描述了文件的特定特征和状态。文件属性对于操作系统、用户和程序来说都是非常重要的,因为它们提供了关于文件如何被处理和管理的重要信息。以下是一些常见的Linux文件属性: 文件类型:指示文件是普通…

【Claude 3】一文谈谈Anthropic(Claude) 亚马逊云科技(Bedrock)的因缘际会

文章目录 前言1. Anthropic的诞生2. Anthropic的“代表作”——Claude 3的“三驾马车”3. 亚马逊云科技介绍4. 强大的全托管服务平台——Amazon Bedrock5. 亚马逊云科技(AWS)和Anthropic的联系6. Claude 3模型与Bedrock托管平台的关系7. Clude 3限时体验入口分享【⚠️截止3月1…

flask-sqlalchemy库

彩笔激流勇退。 1. 简介 ORM&#xff0c;对象关系映射。简单来说&#xff0c;ORM将数据库中的表与面向对象中的类建立了一种对应关系。这样&#xff0c;我们要操作数据库&#xff0c;表&#xff0c;记录就可以直接通过操作类或者类实例来完成。 SQLAlchemy 是目前python中最…

3.DOM-事件进阶(事件对象、事件委托)

环境对象this 环境对象本质上是一个关键字 this this所在的代码区域不同&#xff0c;代表的含义不同 全局作用域中的this 全局作用域中this代表window对象 局部作用域中的this 在局部作用域中(函数中)this代表window对象 原因是函数调用的时候简写了&#xff0c;函数完整写…

开发指南002-前后端信息交互规范-概述

前后端之间采用restful接口&#xff0c;服务和服务之间使用feign。信息交互遵循如下平台规范&#xff1a; 前端&#xff1a; 建立api目录&#xff0c;按照业务区分建立不同的.js文件&#xff0c;封装对后台的调用操作。其中qlm*.js为平台预制的接口文件&#xff0c;以qlm_user.…

产品设计100问?

在当今日新月异的科技浪潮中&#xff0c;产品设计不仅是一种艺术与技术的交融&#xff0c;更是洞悉市场需求、塑造卓越用户体验和推动社会进步的重要手段。随着用户期望值不断提升&#xff0c;如何精准把握目标受众的真实诉求&#xff0c;匠心独运地整合创新技术&#xff0c;并…

DDL、DML 和 DQL区分

DDL、DML 和 DQL 在数据库操作中&#xff0c;DDL、DML 和 DQL 是 SQL 语言的三个主要组成部分&#xff0c;它们分别用于不同的数据库操作任务。 DDL (Data Definition Language, 数据定义语言): DDL 用于定义、修改和删除数据库中的对象&#xff0c;但不直接操作数据本身。如…

MySQL--explain执行计划详解

什么是执行计划&#xff1f; SQL的执行计划&#xff0c;通俗来说就是SQL的执行情况&#xff0c;一条SQL语句扫描哪些表&#xff0c;那个子查询先执行&#xff0c;是否用到了索引等等&#xff0c;只有当我们知道了这些情况之后才知道&#xff0c;才可以更好的去优化SQL&#xf…

java 数据结构二叉树

目录 树 树的概念 树的表示形式 二叉树 两种特殊的二叉树 二叉树的性质 二叉树的存储 二叉树的基本操作 二叉树的遍历 二叉树的基本操作 二叉树oj题 树 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次…

伪分布Hadoop的安装与部署

1.实训目标 &#xff08;1&#xff09;熟悉掌握使用在Linux下安装JDK。 &#xff08;2&#xff09;熟悉掌握使用在Linux下安装Hadoop。 &#xff08;3&#xff09;熟悉掌握使用配置SSH免密登录。 2.实训环境与软件 环境 版本 说明 Windows 10系统 64位 操作电脑配置 …

前端vite+vue3——可视化页面性能耗时指标(fmp、fp)

文章目录 ⭐前言&#x1f496;vue3系列文章 ⭐可视化fmp、fp指标&#x1f496; MutationObserver 计算 dom的变化&#x1f496; 使用条形图展示 fmp、fp时间 ⭐项目代码⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于 前端vitevue3——可视化页面性能耗时…

图像处理与图像分析—图像的读入(C语言)

学习将会依据教材图像处理与图像分析基础&#xff08;C/C&#xff09;版内容展开 什么是数字图像处理 一副图像可以定义为一个二维函数 f(x&#xff0c;y) &#xff0c;其中 x 和 y 是空间&#xff08;平面&#xff09;坐标&#xff0c;任意一对空间坐标 (x,y) 处的幅度值 &am…

内网中的信息收集技术

#主机信息收集 网络配置 ipconfig /all操作系统 systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"软件信息 systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 4. 服 务 信 息 wmic /namespace:\root\securitycenter2 path a…

PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6)

文章目录 1、问题描述2、问题原因3、问题解决 1、问题描述 今天在使用PDFPlumber模块提取PDF文本时extract_text()方法报错&#xff0c;报错内容如下&#xff1a; Traceback (most recent call last):......File "F:\Python\...\site-packages\pdfminer\pdffont.py"…

微信私信短剧机器人源码

本源码仅提供参考&#xff0c;有能力的继续开发 接口为api调用 云端同步 https://ys.110t.cn/api/ajax.php?actyingshilist 影视搜索 https://ys.110t.cn/api/ajax.php?actsearch&name剧名 每日更新 https://ys.110t.cn/api/ajax.php?actDaily 反馈接口 https://ys.11…

R语言复现:中国Charls数据库一篇现况调查论文的缺失数据填补方法

编者 在临床研究中&#xff0c;数据缺失是不可避免的&#xff0c;甚至没有缺失&#xff0c;数据的真实性都会受到质疑。 那我们该如何应对缺失的数据&#xff1f;放着不管&#xff1f;还是重新开始?不妨试着对缺失值进行填补&#xff0c;简单又高效。毕竟对于统计师来说&#…

NUC980开发板CAN开发笔记

一、内核开启CAN CAN 设置 NUC980 系列带有2个CAN(Controller Area Network), 可以分别独立设置。 请按以下的说明来使能CAN功能. 每个CAN可以单独的开关. CAN0有多组管脚可以选择, 需要一并设置。 使用者也可以设置CAN的唤醒功能。步骤如下&#xff1a; 进入 NUC980-linux-4.…