gpt4 book ai didi

Python 求质因数

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:59 25 4
gpt4 key购买 nike

所以我需要使用 python 程序找到一个数字的素因数,并且我能够使用以下方法找到所有因数:

def primeFactors(n):
list = []
for x in range(2,n//2):
if n % x == 0:
list.append(x)
return list

但我不明白如何让程序忽略主要因素的倍数。

我找到了以下代码:

def primes(n):
divisors = [ d for d in range(2,n//2+1) if n % d == 0 ]
return [ d for d in divisors if \
all( d % od != 0 for od in divisors if od != d ) ]

但我实际上并不明白它的作用,而且这是一个作业,所以我不能只是复制和粘贴。

所以我想知道是否有人可以引导我朝着我应该做的事情的正确方向前进。另外,我不能使用任何花哨的函数,它必须主要使用循环、列表和基本数学等内置内容来完成。我使用的是 python 2.7 而不是 3.0。

最佳答案

Divisors 获取所有可能的除数,与您在代码中所做的相同。

返回的值
[ d for d in divisors if \
all( d % od != 0 for od in divisors if od != d ) ]

如果对于所有其他可能的除数 d 不能被任何其他除数整除,则保留除数 d。如果传递给它的所有值都为 true,则 all 返回 true,并且 all 内部的表达式只是检查给定除数 d 是否不是以下除数列表中的任何其他除数 od。这样,最终返回的值列表仅包含不是已存在因子倍数的除数。

关于Python 求质因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33269193/

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