python找出偶数其质数和的分解形式
时间: 2023-05-27 07:07:40 浏览: 165
python 实现分解质因数
5星 · 资源好评率100%
以下是Python代码实现:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def prime_factorization(n):
factors = []
i = 2
while i <= n:
if n % i == 0:
factors.append(i)
n //= i
else:
i += 1
return factors
def sum_of_prime_factors(n):
factors = prime_factorization(n)
prime_factors = [x for x in factors if is_prime(x)]
return sum(prime_factors)
def even_number_decomposition(n):
if n % 2 != 0:
return None
factors = prime_factorization(n)
even_factors = [x for x in factors if x % 2 == 0]
prime_factors = [x for x in factors if is_prime(x)]
return even_factors, prime_factors, sum(prime_factors)
# 示例
print(even_number_decomposition(60)) # 输出 ([2, 2, 3, 5], [3, 5], 8)
```
首先定义一个判断质数的函数 `is_prime()`,然后定义一个函数 `prime_factorization()` 来获取一个数的所有因子,并返回一个列表。接着定义一个函数 `sum_of_prime_factors()`,它可以计算一个数的所有质数因子之和。
最后定义一个函数 `even_number_decomposition()`,它接收一个偶数作为参数,返回一个元组,其中第一个元素是这个偶数的所有偶数因子,第二个元素是所有质数因子,第三个元素是所有质数因子之和。
示例中,我们计算 60 的分解形式。60 的因子是 2, 2, 3, 5。其中偶数因子是 2, 2,质数因子是 3, 5。质数因子之和为 3+5=8。所以最后的输出为 ([2, 2, 3, 5], [3, 5], 8)。
阅读全文