如何设计一个优秀的小程序开发平台?
602
2022-10-31
60---查找组成一个偶数最接近的两个素数
我们先来考虑几个小问题作为铺垫,给定一个数字,判断这个数字是不是为质数。 输入:
3
输出
3
代码如下:
num = 3if num <= 1: print(f"{num} 不是质数")else: for i in range(2, num): if num % i == 0: print(f"{num} 不是质数") break else: print(f"{num} 是质数")"""3 是质数"""
这里我们用到了for-else循环体结构,非常方便。
进一步我们再考虑一个小问题,给定一个值,求出小于该值的所有素数。 输入:
20
输出:
2,3,5,7,11,13,17,19
代码如下:
number = 20list1 = []for num in range(number + 1): if num <= 1: continue else: for i in range(2, num): if num % i == 0: break else: list1.append(num)print(list1)"""[2, 3, 5, 7, 11, 13, 17, 19]"""
接下来我们进入正题,查找组成一个偶数最接近的两个素数。
描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
输入描述:
输入一个大于2的偶数
输出描述:
从小到大输出两个素数
示例1
输入:
20
输出:
713
示例2
输入:
4
输出:
22
解题思路:
像第二个小问题一样,先求出小于该偶数的所有素数集合列表。再从列表中选去两个差值最小的素数输出第一个输出的素数应该小于第二个输出的素数。
代码如下:
number = 20list1 = []for num in range(number + 1): if num <= 1: continue else: for i in range(2, num): if num % i == 0: break else: list1.append(num)big = 0small = 0min1 = 100for i in list1: for j in list1: if i + j == number and j >= i and j - i < min1: small = i big = jprint(small)print(big)
特别注意: 这里的j可以等于i。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~