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

题目描述
任意一个偶数(大于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

posted @ 2020-08-22 09:39  Andy_George  阅读(118)  评论(0编辑  收藏  举报