python已知正整数 � n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
时间: 2024-05-05 17:20:15 浏览: 175
Python练习——判断正整数是否为质数的三种方法
5星 · 资源好评率100%
可以使用质因数分解的方法,将 n 分解成若干个质数的乘积,由于 n 是两个不同的质数的乘积,所以 n 的质因数分解结果中必定有且仅有两个质数相乘。
具体地,可以从 2 开始,依次将 n 除以小于等于 n 的质数,直到 n 被除为 1 或者已经找到了两个质数。找到两个质数后,较大的那个即为答案。
以下是 Python 代码实现:
```python
def find_larger_prime(n):
primes = [] # 存储质因数
i = 2
while i <= n:
if n % i == 0: # i 是 n 的一个质因数
primes.append(i)
n //= i # 将 n 除以 i,继续寻找质因数
if len(primes) == 2: # 找到两个质数,直接返回较大的那个
return max(primes)
else:
i += 1 # i 不是 n 的一个质因数,继续下一个数
```
测试代码:
```python
print(find_larger_prime(21)) # 输出 7
print(find_larger_prime(35)) # 输出 7
print(find_larger_prime(143)) # 输出 13
print(find_larger_prime(221)) # 输出 17
```
阅读全文