猫史档案馆


【Python作品分享】质数判定器【教程贴】

用户:YYY2019YYY2019查看:0 回复:0 评论:0 创建时间:2022-11-30T10:46:20


【作品展示】

center_image

 

【作品介绍】

又一次大更新!对代码进行了简化,大大缩短了时间!还加入了运行时间共鞥哦!判定质数从此变得简单!

 

【作品源代码】

"""程序介绍:
该程序可对0~999999之间的数字进行质数判定;
若不为质数,可给出输入数字的全部因子与质因子。"""

#导入math与time库
from math import *
from time import *

#开始记录时间
start_time = time()

#因子函数
def factor():
    for i in range(1, x):
        if x % (i+1) == 0:
            b.append(i+1)
    b.insert(0, 1)
    if len(b) == 2:
        print(str(x)+"为质数。")
    elif len(b) > 2:
        print(str(x)+"的因子如下:")
        print(b)
#质因子函数
def determination(num):
    for i in range(2, int(num)):
        if (num % i) == 0:
            d.append(i)
            num = num/i
            if int(num) == 1:
                d.sort()
                print(str(x)+"的质因子如下:")
                print(d)
                stop_time = time()
                func_time = stop_time-start_time
                print("本次程序运行时间为%s 秒" % func_time)
                exit()
            determination(num)

#判定输入是否正确
while True:
    x = input("请输入你想判定的整数:")
    if x.isdigit():
        if int(x) > 999999:
            print("输入数值过大!")
        elif int(x) > 3:
            print("输入正确!")
            break
        elif int(x)==2 or int(x)==3:
            print(x+"为质数。")
            break
        else:
            print(x+"不为质数。")
            break
    else:
        print ("输入有误!")

#变量与列表
x=int(x)
a=int(round(sqrt(x),0))
b=[]
c=[]
d=[]

if x>3 and x<999999:
    #执行因子函数
    factor()
    #执行质因子函数
    determination(x)

#停止记录时间
stop_time = time()
#得到中间功能的运行时间
func_time=stop_time-start_time
#打印程序运行时间
print("本次程序运行时间为%s 秒"%func_time)

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页