Python计算第N个素数

server/2024/10/18 23:24:44/

介绍

此脚本计算第 N 个质数。在课程工作中,演示了 Python 类,我对这个主题非常满意,因为它与 C++ 非常相似。我所做的一项优化是跳过对偶数的检查。根据定义,偶数永远不可能是质数,因为它们总是能被 2 整除。

什么是质数?质数是大于 1 且只能被 1 或其本身整除的数字。数字 2 是质数,因为它大于 1 并且只能被 2 整除。出于同样的原因,3、5 和 7 也是质数。

使用代码

若要使用该代码,请创建一个具有所需第 N个质数的对象。计算质数的基本思想是从 2 循环到数字 1。该脚本使用外部循环和内部循环来实现此目的。外循环计算已发现多少个素数,并在发现第 N 个素数时退出。内部循环由两个数字初始化。第一个数字是“”,表示要检查是否为素数的数字。第二个数字是从 2 到素数减 1 的计数器。为了测试素数,第二个计数器是模数除以第一个计数器。如果有余数,则该数字是素数的候选数,计数器将增加,然后重新检查。如果没有余数,则该数字不是素数的候选者。当一个数字被拒绝时,第一个优化会脱离内部循环。第二个优化确保只测试奇数。CPrimei

例如:

python"><span style="color:black"><span style="background-color:#fbedbb"><span style="color:#008000"><em>#</em></span><span style="color:#008000"><em> Calculate the 10th prime number</em></span>
MyPrime = CPrime(10)
<span style="color:blue">print</span>(MyPrime.GetPrime())</span></span>

整个脚本:

python"><span style="color:black"><span style="background-color:#fbedbb"><span style="color:purple">"""</span><span style="color:purple">
This script calculates a prime number
"""</span><span style="color:#008000"><em>#</em></span><span style="color:#008000"><em> Base class</em></span>
<span style="color:blue">class</span> CCalculate:<span style="color:blue">def</span> __init__(self):<span style="color:blue">pass</span><span style="color:blue">def</span> IsEven(self, num):<span style="color:blue">if</span> num % 2 == 0:<span style="color:blue">return</span> <span style="color:blue">True</span><span style="color:blue">return</span> <span style="color:blue">False</span><span style="color:#008000"><em>#</em></span><span style="color:#008000"><em> Derived class</em></span>
<span style="color:blue">class</span> CPrime(CCalculate):<span style="color:blue">def</span> __init__(self, nthPrime):self.nthPrime = nthPrime<span style="color:#008000"><em>#</em></span><span style="color:#008000"><em> return the nth Prime number</em></span><span style="color:blue">def</span> GetPrime(self):nthPrime = self.nthPrimecounter = 0i = 2<span style="color:blue">while</span> counter < nthPrime:bPrime = <span style="color:blue">True</span>j = 2<span style="color:blue">while</span> j < i:<span style="color:blue">if</span> i % j == 0:bPrime = <span style="color:blue">False</span><span style="color:blue">break</span><span style="color:blue">else:</span>j = j + 1<span style="color:blue">if</span> bPrime <span style="color:blue">is</span> True:counter = counter + 1<span style="color:#008000"><em>#</em></span><span style="color:#008000"><em> Increase the number</em></span>i = i + 1<span style="color:#008000"><em>#</em></span><span style="color:#008000"><em> if the next iteration does not finish the loop or</em></span><span style="color:#008000"><em>#</em></span><span style="color:#008000"><em> it is an even number, then increase it to make it odd</em></span><span style="color:blue">if</span> counter < nthPrime <span style="color:blue">and</span> self.IsEven(i) <span style="color:blue">is</span> True:i = i + 1<span style="color:blue">return</span> i - 1</span></span>

http://www.ppmy.cn/server/33013.html

相关文章

uniapp 微信开发工具上访问正常,真机调试一直跨域报错

微信小程序真机调试时&#xff0c;出现跨域问题&#xff0c;需要同时在后端设置多种允许跨域的设置&#xff1a; // 指定允许其他域名访问 header(Access-Control-Allow-Origin:*); // 响应类型 header(Access-Control-Allow-Methods:GET,POST,OPTION); // 响应头设置 header(…

短视频矩阵系统ai剪辑 矩阵 文案 无人直播四合一功能核心独家源头saas开发

抖去推矩阵AI小程序是一款针对短视频平台的智能创作和运营工具&#xff0c;它具有以下功能特点&#xff1a; 1.批量视频生成&#xff1a;抖去推可以在短时间内生成大量视频&#xff0c;帮助商家快速制作出适合在短视频平台上推广的内容 2.全行业覆盖&#xff1a;适用于多个行业…

JavaScript(五)的补充,比较

数字之间的比较&#xff1a; 在JavaScript中&#xff0c;数字的比较主要依赖于比较运算符&#xff0c;如 &#xff08;宽松相等&#xff09;、&#xff08;严格相等&#xff09;、<&#xff08;小于&#xff09;、>&#xff08;大于&#xff09;、<&#xff08;小于或…

一文扫盲(8):智能巡检系统如何设计

本次带来第8期&#xff1a;智能巡检的界面设计&#xff0c;从系统定义、功能模块、优势、界面构成和设计方向四个方面讲解&#xff0c;大千UI工场愿意持续和大家分享&#xff0c;欢迎关注、点赞、转发。 一、什么是智能巡检系统 智能巡检系统是一种利用人工智能和物联网技术&a…

EPAI手绘建模APP图层、相机、灯光

④ 图层列表 1) 添加图层。 2) 列表显示场景中所有图层。初始时&#xff0c;默认有一个激活的图层。场景中所有模型都会添加到这个图层。 3) 第一次点击图层名称旁边的可见按钮&#xff0c;图层中所有模型都不可见&#xff0c;再次点击&#xff0c;图层中所有模型可见。 4)…

nn.GRU层输出:state与output的关系

在 GRU&#xff08;Gated Recurrent Unit&#xff09;中&#xff0c;output 和 state 都是由 GRU 层的循环计算产生的&#xff0c;它们之间有直接的关系。state 实际上是 output 中最后一个时间步的隐藏状态。 GRU 的基本公式 GRU 的核心计算包括更新门&#xff08;update gat…

Java高阶私房菜:JVM性能优化案例及讲解

目录 核心思想 优化思考方向 压测环境准备 堆大小配置调优 调优前 调优后 分析结论 垃圾收集器配置调优 调优前 调优后 分析结论 JVM性能优化是一项复杂且耗时的工作&#xff0c;该环节没办法一蹴而就&#xff0c;它需要耐心雕琢&#xff0c;逐步优化至理想状态。“…

【Github】直接引用Github仓库中的图片

用picgo能够上传图片、复制链接。 那如果我已经将图片通过其他方法上传到Github仓库中&#xff0c;难道还要上传一次&#xff1f; 不用&#xff01; 步骤 1.打开仓库中要访问的图片 2.复制此时浏览器链接: https://github.com/jaxhur/image/blob/main/image-2022082410480713…