Python数学计算工具2、判断质数、遍历质数

举报
红目香薰 发表于 2022/11/29 15:08:28 2022/11/29
【摘要】 ​质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。质数在很多的运算中都能给我们很大的帮助,是我们工作后期很好的一个数学帮手,那么我们需要对质数加深了解,那么这个小工具就能帮助我们来处理这些事情:源码:这里我进行了异常处理,处理的方式是无论输入什么错误的内容都会继续重新输入,所以不用怕异常,但是查询质数范围别写亿...

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。


质数在很多的运算中都能给我们很大的帮助,是我们工作后期很好的一个数学帮手,那么我们需要对质数加深了解,那么这个小工具就能帮助我们来处理这些事情:

源码:

这里我进行了异常处理,处理的方式是无论输入什么错误的内容都会继续重新输入,所以不用怕异常,但是查询质数范围别写亿为单位就行,几百上千万还是能遍历出来的。每行我显示了5个值。

# 计算质数
import os

os.system("title 质数查询与判断:")


def isZhi(num):
    # 质数大于 1
    if num > 1:
        # 查看因子
        for i in range(2, num):
            if (num % i) == 0:
                return False
                break
        else:
            return True

    # 如果输入的数字小于或等于 1,不是质数
    else:
        return False


def baiZhi(size):
    count = 0
    for i in range(2, size):
        if isZhi(i):
            print(i, end="\t")
            count += 1
            if count % 5 == 0:
                print()


while True:
    try:
        choose = input("输入功能选择: 1、判断质数\t2、查询范围内所有质数")
        if choose == "1":
            num = int(input("请输入一个数字: "))
            if isZhi(num):
                print("是质数")
            else:
                print("不是质数")
        elif choose == "2":
            num = int(input("请输入查询范围(例如:1000): "))
            baiZhi(num)
            print()
    except:
        print("请正确输入!")

示例包下载地址:

https://download.csdn.net/download/feng8403000/86933994

下面是打包过程:

使用打包工具:【pip install pyinstaller】

安装完成后注意使用语法:

pyinstaller -F -p D:\save\Exe\studys\Python\exe\Lib -i D:\save\myclass\Python\core\pythonProject\python.ico demo5.py -n " 质数判断与质数范围查询工具"

可以看到我使用了2个绝对路径,绝对路径1是Python环境的包所在的位置,如果包不全的话需要自己通过pip进行下载,建议修改完镜像位置再下载。不会也别着急,每篇违章后面都会有打包教程。操作次数多了也就会了。

执行完成我们看到【successfully】代表成功了。


效果如下:


这里备了点孪生数的信息,可以看看了解一下:

以下15个区间内质数和孪生质数的统计数。

S1区间1——72,有素数18个,孪生素数7对。(2和3不计算在内,最后的数是孪中的也算在前面区间。)

S2区间73——216,有素数27个,孪生素数7对。

S3区间217——432,有素数36个,孪生素数8对。

S4区间433——720,有素数45个,孪生素数7对。

S5区间721——1080,有素数52个,孪生素数8对。

S6区间1081——1512,素数60个,孪生素数9对。

S7区间1513——2016,素数65个,孪生素数11对。

S8区间2017——2592,素数72个,孪生素数12对。

S9区间2593——3240,素数80个,孪生素数10对。

S10区间3241——3960,素数91个,孪生素数19对。

S11区间3961——4752素数92个,孪生素数17对。

S12区间4752——5616素数98个,孪生素数13对。

S13区间5617——6552素数108个,孪生素数14对。

S14区间6553——7560素数113个,孪生素数19对。

S15区间7561——8640素数116个,孪生素数14对。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。