如何把列表中每个整数分解质因数,然后将所有的质因子存储到一个集合中,最后返回这个集合
时间: 2023-05-27 10:03:34 浏览: 88
下面是一个Python的示例代码:
```python
def prime_factors(n):
"""
分解一个正整数n的质因数,返回一个集合
"""
factors = set()
d = 2
while d * d <= n:
while (n % d) == 0:
factors.add(d)
n //= d
d += 1
if n > 1:
factors.add(n)
return factors
def collect_prime_factors(lst):
"""
将列表中每个整数分解质因数,然后将所有的质因子存储到一个集合中,最后返回这个集合
"""
factors = set()
for n in lst:
factors.update(prime_factors(n))
return factors
# 示例
lst = [12, 15, 21]
factors = collect_prime_factors(lst)
print(factors) # 输出: {2, 3, 5, 7}
```
该代码中,`prime_factors(n)`函数用来分解一个正整数n的质因数,返回一个集合。首先定义了一个空的集合`factors`,然后从最小的质数2开始,依次尝试去整除n。如果可以整除,就将这个质数加入到集合中,并将n更新为n整除以这个质数的结果。如果不能整除,就将质数加1,继续尝试。如果最后n大于1,说明n是一个质数,也需要将它加入集合中。
`collect_prime_factors(lst)`函数则通过迭代`lst`列表中的每个整数,将每个整数的质因数分解出来,然后对这些质因数取并集,得到最后的结果。最终返回这个集合。
使用示例中的数据进行测试,可以发现集合中包含的质因数是2、3、5、7,与列表中的12、15、21的质因数集合的并集一致。
阅读全文