给出n个数字,试求质因数最大的数字。
时间: 2023-10-17 18:05:40 浏览: 165
首先,我们需要编写一个函数来判断一个数是否为质数:
```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
```
接下来,我们可以遍历给定的数字列表,对于每个数字,将它分解成质因数,并记录质因数中的最大值即可。具体地,我们可以使用试除法对每个数字进行分解:
```python
def max_prime_factor(nums):
"""
求质因数最大的数字
"""
max_prime = 0
for num in nums:
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0 and is_prime(i):
max_prime = max(max_prime, i)
while num % i == 0:
num //= i
if num != 1 and is_prime(num):
max_prime = max(max_prime, num)
return max_prime
```
其中,对于每个数字 $num$,我们从 $2$ 开始到 $\sqrt{num}$ 进行试除,如果当前除数 $i$ 是 $num$ 的因数且 $i$ 是质数,则更新最大质因数,并将 $num$ 不断除以 $i$ 直到无法整除。
最后,如果 $num$ 不等于 $1$ 且 $num$ 本身是质数,则更新最大质因数即可。
完整代码如下:
阅读全文