题目描述
两个质数的和是S,它们的积最大是多少?
提示
输入输出格式
输入格式
一个不大于10000的正整数S,为两个质数的和。
输出格式
一个整数,为两个质数的最大乘积。数据保证有解。
输入输出样例
输入
50
输出
589
def is_prime(n):
"""判断一个数是否为质数"""
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
s = int(input())
max_product = 0
for i in range(2, s):
if is_prime(i) and is_prime(s - i):
max_product = max(max_product, i * (s - i))
print(max_product)
使用了一个 is_prime
函数来判断一个数是否为质数。在主程序中,我们遍历从 2 到 s - 1
的所有数字,对于每一个数 i,我们判断它是否为质数,并且判断 s - i
是否也为质数。如果都为质数,我们就计算 i 和 s - i
的乘积,并更新最大值。最后输出最大值即可。
注意:题目保证了有解,因此不需要在程序中进行判断。