I am a teacher!

导航

习题解析之:哥德巴赫猜想

【问题描述】
编写验证哥德巴赫猜想的小程序。

1742 年,哥德巴赫给欧拉的信中提出了以下猜想任一大于 2 的整数都可写成三个质数之和。常见的猜想陈述为欧拉的版本,即任一大于 2 的偶数都可写成两个素数之和,亦称为强哥德巴赫猜想关于偶数的哥德巴赫猜想。比如: 24=5+19,其中 5 和 19 都是素数。

输入一个正整数 N,当输入为偶数时,分行按照格式N=p+q 输出 N 的所有素数分解,其中 p 、 q 均为素数且 p ≤ q。当输入为奇数或 N<4 时,输出 'Data error!' 。

编程要求
根据提示,在右侧编辑器补充代码,完善哥德巴赫猜想的小程序。

测试说明
平台会对你编写的代码进行测试:

测试输入:
88
预期输出:

88=5+83
88=17+71
88=29+59
88=41+47

【编程思路】

        先编写一个函数 is_prime(n) 用于判断整数 n 是否为素数,若n 是素数,返回 True;否则,返回 False。
        当输入整数 N 为奇数或 N<4 时,输出 'Data error!' 。
        当 N == 4 时,直接输出 4=2+2。
        当 N 为大于 4 的偶数时,N 一定能分解为两个奇数素数的和。设 N=p+q,其中 p、q 均为素数且 p ≤ q。故 p <= N // 2。
        用循环  for i in range(3,N // 2 + 1,2): 穷举 3 ~ N // 2 范围的奇数 i ,若 i 是素数,且 N - i 也是素数,则 N 可分解为 i 和 N - i 这两个素数的和。
        按上面的思路,编写源程序如下:
 image

posted on 2025-11-13 09:05  aTeacher  阅读(0)  评论(0)    收藏  举报