B3871,Python代码全部TLE
查看原帖
B3871,Python代码全部TLE
1222965
chenyanxiu_230531楼主2024/12/18 08:57

思路写在代码中

a=int(input(""))
#print(a,"=",end="")
list=[]
def prime(n):#质数判断,时间复杂度为O(n)
    for x in range(2,n):
        if n%x==0:
            return 0
    return 1
for i in range(2,a+1):
    #从2开始依次循环测试各个质数
    res=prime(i)
    if res==1:
        while a%i==0:
            #将该质因数全部除掉
            list.append(i)
            a/=i
            a=int(a)#返回整数
i=1
while i!=len(list)+1:
    if list.count(list[i-1])!=1:
        print(str(list[i-1])+"^"+str(list.count(list[i-1])),end="")#指数不为1
    else:
        print(list[i-1],end="")#指数为1
    i+=list.count(list[i-1])
    if i!=len(list)+1:
        print(" * ",end="")#如果不是最后一项,则输出乘号

问:本段代码思路有没有问题?是否有某些地方可进行优化?

2024/12/18 08:57
加载中...