首页 > 其他 > 详细

华为机试60- 查找组成一个偶数最接近的两个素数

时间:2020-08-22 10:53:34      阅读:83      评论:0      收藏:0      [点我收藏+]

题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对
输入描述:
输入一个偶数

输出描述:
输出两个素数

示例1
输入
20
输出
7
13

 

参考:

素数:又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

import math
 
def isPrime(n):     #判定
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True
 
while True:
    try:
        num ,start= int(input()) // 2,1
        if num%2==1:
            start=0
        for i in range(start, num, 2):
            a, b = num + i, num - i
            if isPrime(a) and isPrime(b):
                print(b)
                print(a)
                break
 
    except:
        break

执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率:100.00% 运行时间: 24ms 占用内存: 3388KB

华为机试60- 查找组成一个偶数最接近的两个素数

原文:https://www.cnblogs.com/ai-learning-blogs/p/13544445.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!