我们先来考虑几个小问题作为铺垫,给定一个数字,判断这个数字是不是为质数。 输入: 3 输出 3 代码如下: num = 3 if num = 1 : print ( f" { num } 不是质数" ) else : for i in range ( 2 , num ): if
我们先来考虑几个小问题作为铺垫,给定一个数字,判断这个数字是不是为质数。
输入:
输出
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循环体结构,非常方便。
进一步我们再考虑一个小问题,给定一个值,求出小于该值的所有素数。
输入:
输出:
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 = 0
small = 0
min1 = 100
for i in list1:
for j in list1:
if i + j == number and j >= i and j - i < min1:
small = i
big = j
print(small)
print(big)
特别注意: 这里的j可以等于i。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~