【发布时间】:2019-11-10 23:16:58
【问题描述】:
我正在尝试 Project Euler 问题 3:数字 600851475143 的最大素因数是多少?我的代码适用于随机 4 位数字。但是我的代码只是没有编译。现在已经 15 分钟了。
我认为这与“算法的效率”有关。我即将进入大学学习计算机科学与工程课程,所以我认为如果我用 Python 练习编码将是一个好主意。我的代码效率不高吗?我应该在继续之前学习 CLRS 吗?我已经完成了 Python 的基础知识(来自 Udacity)。
#What is the largest prime factor of the number 600851475143 ?
factorlist=[]
def prime(num): #primetesterfunction
primecount=0
for factors in range(2,num):
if num%factors==0:
return False
else:
primecount+=1
if primecount==num-2:
return True
num=int(input("Enter Number: "))
for x in range(2,num+1):
if num%x==0 and prime(x)==True:
factorlist.append(x)
else:
continue
print("The largest prime factor of {} is {}".format(num,factorlist[-1]))
现在已经 18 分钟了,仍然没有结果...
【问题讨论】:
-
Python 中没有编译这样的东西。您可能是指执行。
-
具有如此多迭代的嵌套循环需要很长时间,这不足为奇
-
没有人说你的问题是错误的,如果你点击了我发布的任何一个链接而不是粗鲁,你会看到他们是完全相同的问题
标签: python compilation