我想输入用空格分隔的数字作为输入,并把它们存储在一个列表中,我想把列表中所有的孪生素数作为输出,如果输入的数字中没有孪生素数,我想得到一个输出"No any twin primes"
。
- 孪生素数-两个素数的差为2*
我的代码是这样的:
lst = input()
test_list =[]
for ele in lst.split():
n_int = int(ele)
test_list.append(n_int)
def prime(x):
for k in range(2, x):
if x%k == 0:
return False
return True
diff = 0
for i in test_list:
for j in test_list:
if prime(i) and prime(j):
diff = abs(i-j)
if diff == 2:
print(i, j)
print("No any twin primes")
如果我输入一个像3 4 5 7 8
这样的数列,我期望得到一个输出
3 5
5 7
但我的成果是
3 5
5 3
5 4
5 7
5 9
7 5
No any twin primes
如果在输入的列表(2 3 7 9
)中没有任何孪生素数,我得到的预期输出为
No any twin primes
。
2条答案
按热度按时间goqiplq21#
所做更改:
(1)创建了
res
作为存储孪生素数的列表(2)内部for循环的迭代是从
i+1
到end
代码:-
输出:-
igetnqfo2#
下面是我的尝试:
您还可以更改返回打印,如下所示:
输入:
twinPrimes([3,5,7])
输出:
输入:
twinPrimes([2,5,9])
输出: