测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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)
上一题 下一题