题目描述
两个质数的和是 S,它们的积最大是多少?
输入格式
一个不大于 10000 的正整数 S,为两个质数的和。
输出格式
一个整数,为两个质数的最大乘积。数据保证有解。
输入输出样例
输入 #1
50
输出 #1
589
def find_primes(n):
primes = []
for i in range(2, n):
is_prime = True
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
return primes
s=int(input())
a=find_primes(s)
ave=0
for i in range(len(a)):
for j in range(len(a)):
if a[i]+a[j]==s:
if a[i]*a[j]>ave:
ave=a[i]*a[j]
print(ave)
解析:
- def find_primes(n):为循环遍历求出质数,存在列表中并返回给a。
- ave用来存最大的积,循环判断列表中的每每两个数相加和是否为S,如果是,求出积。
- 在判断积是否为最大。
来啦来啦~