输出一个正整数,表示出现最多的质因子,如果有多个质因子出现一样多,输出最小的那一个。
时间: 2024-03-23 14:38:19 浏览: 46
好的,以下是一个 Python 的实现代码,请你参考:
```python
import math
# 判断是否是质数
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
n = int(input())
factors = []
# 质因数分解
for i in range(2, n + 1):
if is_prime(i):
while n % i == 0:
factors.append(i)
n //= i
# 统计每个质因子出现的次数
counts = []
cnt = 1
for i in range(1, len(factors)):
if factors[i] == factors[i - 1]:
cnt += 1
else:
counts.append((factors[i - 1], cnt))
cnt = 1
# 最后一个质因子的处理
counts.append((factors[-1], cnt))
# 找到出现次数最多的那个质因子,并且要保证它是最小的
counts.sort(key=lambda x: (-x[1], x[0]))
print(counts[0][0])
```
这个程序会先对输入的正整数进行质因数分解,然后统计每个质因子的出现次数,最后找到出现次数最多的那个质因子,并且要保证它是最小的,输出即可。
阅读全文