A39145. 任何一个大于 7 的奇数,都可以表示成 3 个奇质数之和,这就是著名的“奇数哥德巴赫猜想”。现输入一个正整数,请编程验证哥德巴赫猜想是否成立。如果成立,按照从小到大的顺序输出 3 个质数,中间用空格隔开。有多组答案时,按照第一个数字从小到大的顺序分行输出。如果不成立或输入的正整数不符合条件(要求是大于 7 的奇数),直接输出 No。【输入示例 1】11【输出示例 1】3 3 5【输入示例 2】2…
填空题
困难
知识点
题目描述
任何一个大于 7 的奇数,都可以表示成 3 个奇质数之和,这就是著名的“奇数哥德巴赫猜想”。现输入一个正整数,请编程验证哥德巴赫猜想是否成立。
如果成立,按照从小到大的顺序输出 3 个质数,中间用空格隔开。有多组答案时,按照第一个数字从小到大的顺序分行输出。
如果不成立或输入的正整数不符合条件(要求是大于 7 的奇数),直接输出 No。
【输入示例 1】
11
【输出示例 1】
3 3 5
【输入示例 2】
27
【输出示例 2】
3 5 19
3 7 17
3 11 13
5 5 17
5 11 11
7 7 13
【输入示例 3】
6
【输出示例 3】
No
参考答案
def isPrime(n):
for i in range(2, int(n * * 0.5 + 1)):
if n % i == 0:
return False
else :
return True
n = int(input())
if n < 9 or n % 2 == 0:
print("No")
else :
for i in range(3, int(n / 3) + 1):
for j in range(i, n - i):
if j <= n - i - j and isPrime(i) and isPrime(j) and isPrime(n - i - j):
print(i, j, n - i - j)
上一题
下一题