社区讨论

B3871,Python代码全部TLE

B3871[GESP202309 五级] 因数分解参与者 4已保存回复 14

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
14 条
当前快照
1 份
快照标识符
@m4t6peto
此快照首次捕获于
2024/12/18 08:58
去年
此快照最后确认于
2025/11/04 23:21
4 个月前
查看原帖
思路写在代码中
PY
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="")#如果不是最后一项,则输出乘号
问:本段代码思路有没有问题?是否有某些地方可进行优化?

回复

14 条回复,欢迎继续交流。

正在加载回复...