A21793. 孪生素数素数是指大于1的自然数,且只能被1和它本身整除的数。孪生素数是指差值为2的两个素数,例如 (3, 5)、(11, 13) 等。问题:给定一个整数 n,请编写程序输出所有小于等于 n 的孪生素数对,按升序排列。 补全下列程序代码。def is_prime(num): if _______①__________: return False for i in range(2, num): if…
填空题
较难
知识点
题目描述
孪生素数
素数是指大于1的自然数,且只能被1和它本身整除的数。孪生素数是指差值为2的两个素数,例如 (3, 5)、(11, 13) 等。问题:给定一个整数 n,请编写程序输出所有小于等于 n 的孪生素数对,按升序排列。 补全下列程序代码。
def is_prime(num):
if _______①__________:
return False
for i in range(2, num):
if ________②_________:
return False
return _______③__________
def find(n):
for i in range(2,n-1):
if is_prime(i) and _______④__________:
print(i, i + 2)
n = int(input())
find(n)参考答案
def is_prime(num):
if num < 2: # ① 小于2的数非素数
return False
for i in range(2, num):
if num % i == 0: # ② 存在因数则非素数
return False
return True # ③ 通过所有检查则为素数
def find(n):
for i in range(2, n - 1):
if is_prime(i) and is_prime(i + 2): # ④ 检查孪生素数对
print(i, i + 2)
n = int(input())
find(n)答案解析
评分标准:
(1)num < 2 (或等效答案);(3分)
(2)num % i == 0 (或等效答案);(3分)
(3)True (或等效答案);(3分)
(4)is_prime(i+2) (或等效答案)。(3分)
上一题
下一题