def prime_factors(n):
i = 2
lst = []
while i <= n:
if isprime(i):
lst.append(i)
i += 1
return lst
def isprime(n):
n = isdivisor(n)
i = 2
lst = []
for j in n:
while i <= j/2:
if j % i != 0:
return True
else:
return False
i += 1
def isdivisor(n):
i = 2
lst = []
while i <= n/2:
if n % i == 0:
lst.append(i)
i += 1
return lst
print prime_factors(15)
首先,我试图找到整型n
的除数,并检查除数是否为素数。然而,输出是[10, 14, 15]
而不是[3,5]
。是因为我不能做作业n = isdivisor(n)
还是别的什么
代码中有一些逻辑错误。通过返回除数和素数列表,您在某种程度上使事情变得过于复杂。在
prime_factors()
中已经有一个循环来遍历从2到n
的所有数字。因此,您可以简化isdivisor()
和isprime()
函数:然后在
prime_factors()
中更改主循环,如下所示:输出:
我只是写了一段代码来做这件事,没有使用libs。我希望它能帮助你
我的代码:
输出:
相关问题 更多 >
编程相关推荐