题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

http://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9

  1. 找出小于 n 的全部素数
  2. 分别从素数的两端取最大和最小的素数,相加,比较其和与 n 的大小
[i ->                      <- j]
[2, 3, 5, 7, 11, 13, 17, 19, 23]  # 小于 n 的素数列表
  1. 相等时,说明当前取到的两个素数,可能就是最终结果,存下来,然后任意向中间移动其中一个数,重新比较
  2. 大于 n 时,向前移动较大的素数,使两个素数的和减小,重新比较
  3. 小于 n 时,向后移动较小的素数,使两个素数的和增大,重新比较
  4. 直至两个素数重叠
n = int(input())

r = [2]
for i in range(3, n):  # n <= 4
    for j in r:
        if i % j == 0:
            break
    else:
        r.append(i)

i = 0
j = len(r) - 1
a = 0
b = 0
while i <= j:
    if r[i] + r[j] == n:
        a = r[i] 
        b = r[j]
        i += 1
    elif r[i] + r[j] > n:
        j -= 1
    else:
        i += 1
print(a)
print(b)

全部评论
点赞 回复 分享
发布于 2022-07-20 10:09
思路清晰,学习了
点赞 回复 分享
发布于 2022-04-06 10:06

相关推荐

不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务