首页 > 试题广场 >

学数学

[编程题]学数学
  • 热度指数:1684 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
数学老师正在教授小畅和小游两人素数的概念。为了帮助巩固两人的知识,老师说出一个数,要求小游和小畅合作,每人说出一个素数,使得两人说出的素数的和刚好等于老师说出的数。请编写程序计算两人说出的素数对的个数。如,老师说10,小畅和小游可以说出两对素数,分别为(5,5)和(3,7)(不考虑顺序)。

输入描述:
输入包括一个整数n,(3 ≤ n < 1000)


输出描述:
输出符合条件的素数对的个数
示例1

输入

10

输出

2
def isprimer(num):
    from math import sqrt
    if num == 1:
        return False
    for i in range(2,int(sqrt(num))+1):
        if num%i == 0:
            return False
    return True

if __name__ == '__main__':
    import sys
    messages = sys.stdin.readline().strip().split()
    n = int(messages[0])
    A = []
    for ix in range(2, int(n // 2) + 1):
        iy = n-ix
        if isprimer(ix) and isprimer(iy):
            A.append(ix)
    print(len(A))
发表于 2020-05-19 10:41:00 回复(0)