社区讨论
B3871,Python代码全部TLE
B3871[GESP202309 五级] 因数分解参与者 4已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 14 条
- 当前快照
- 1 份
- 快照标识符
- @m4t6peto
- 此快照首次捕获于
- 2024/12/18 08:58 去年
- 此快照最后确认于
- 2025/11/04 23:21 4 个月前
思路写在代码中
PYa=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 条回复,欢迎继续交流。
正在加载回复...