gpt4 book ai didi

python - 在 Python 中精炼因子

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:43 25 4
gpt4 key购买 nike

我必须编写一个函数factor,它接受一个整数参数n,并返回从2 到n-1 中能整除n 的最小数。如果不存在这样的数字,则返回 -1。

我能够创建函数来查找因子,但不确定如何优化它以返回正确的结果。

def factors(n):
i = n
lst=[]
while i > 0:
if n % i == 0:
lst.append(i)
i -= 1
print(lst)
result=[i for i in lst if i > 2 and i < n-1]
print(result[1])



def main():
n=int(input("Enter n:"))

factors(n)

main()

最佳答案

您可以使用列表理解来查找数字的因数。此外,要优化您的解决方案,您只需要运行到一半的数量。

例如对于 12,12 的最大因数可以是 6。

大于该数一半的数不能作为它的因数。因此,您不需要在 n-1 之前运行循环。

>>> [n for n in range(2, number/2+1) if number % n == 0]

在上面的行中,我们将运行一个从 2 到 (number/2 + 1) 的循环,并检查数字是否可以被 n 整除,然后将其添加到列表中。

关于python - 在 Python 中精炼因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43503743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com