猫史档案馆


【Python作品分享】质数(素数)判断器(最快、最新版本)支持中英文【作品秀】

用户:银辰_源哥银辰_源哥查看:1 回复:1 评论:1 创建时间:2020-06-14T17:37:47


【作品展示】

center_image

 

【作品介绍】

质数(素数)判断器,可以快速判断出质数(素数),使用了根号等代码让程序更加快捷!目前这个版本运行速度几乎是别人的三分之一!使用了time(时间)库,math(数学)库!会自动计算使用程序的时间,有英文(英语水平不太好,有的地方翻译得没有100%准确,请谅解!),还可以选择得到的结果,正在增加其他功能,以后会更新的哦~如果你有优化方案或者新功能,可以反馈在评论区,作者会感谢你哦~~(还有机会得到小礼品)

 

【作品源代码】

import math
import time
language = int(input("请选择您需要使用的语言,回复1使用简体中文;Please select the language you need to use,Reply 2 in English:"))
if language == 1:
    start = time.time()
    def prime(x):
        number = x

        if number < 2:
            print(number,"不是素数。")
            return False

        for i in range(2, int(math.sqrt(number))+1):
            if number % i == 0:
                return False
        return True


    end = time.time()
    time_1 = end - start
    a = int(input("请输入要判断素数范围开始的数,例如“2-100”中的2:"))
    b = int(input("请输入要判断素数范围结束的数,例如“2-100”中的100:"))
    start = time.time()
    b = b+1
    List_prime = []
    for i in range(a, b):
        if prime(i):
            List_prime.append(i)

    end = time.time()
    a = int(input("请问您要获取哪些信息?回复1获取详细素数,回复2获取素数数量,回复3获取所有数量:"))
    time_2 = end - start

    if a == 1:
        print("素数喵, List_prime)
        end = time.time()
        print("本次程序运行时间为:", time_1+time_2, "秒/s")

    if a == 2:
        b = b-1
        print("在", a, "-", b, "中找到了", len(List_prime), "个素数。")
        end = time.time()
        print("本次程序运行时间为:", time_1+time_2, "秒/s")

    if a == 3:
        b = b-1
        print("素数喵, List_prime)
        print("在", a, "-", b, "中找到了", len(List_prime), "个素数。")
        end = time.time()
        print("本次程序运行时间为:", time_1+time_2, "秒/s")

if language == 2:
    start = time.time()
    def prime(x):
        number = x

        for i in range(2, int(math.sqrt(number))+1):
            if number % i == 0:
                return False
        return True

    end = time.time()
    time_3 = end - start
    a = int(input("Please enter the number to judge the start of the prime range, for example, 2 in “2-100”:"))
    b = int(input("Please enter the number to judge the start of the prime range, for example, 100 in “2-100”:"))
    start = time.time()
    b = b+1
    List_prime = []
    for i in range(a, b):
        if prime(i):
            List_prime.append(i)

    end = time.time()
    a = int(input("What information would you like to get? Reply 1 gets the detailed prime number, reply 2 gets the number of prime numbers, and reply 3 gets all the information:"))
    time_4 = end - start

    if a == 1:
        print("Prime numbers have", List_prime)
        end = time.time()
        print("The running time of this program is:", time_3+time_4, "seconds/s")

    if a == 2:
        b = b-1
        print("In", a, "-", b, "found", len(List_prime), "prime numbers.")
        end = time.time()
        print("The running time of this program is:", time_3+time_4, "seconds/s")

    if a == 3:
        b = b-1
        print("Prime numbers have", List_prime)
        print("In", a, "-", b, "found",len(List_prime), "prime numbers.")
        end = time.time()
        print("The running time of this program is:", time_3+time_4, "seconds/s")

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
蒟蒻OIer1048576蒟蒻OIer1048576

这不是最快的,有O(log x ^ 6)的费马素性检验

点赞2


评论