资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
差为2的两个素数被称为孪生素数对,例如3和5, 11和13.
给定一个区间,请输出区间内所有的孪生素数对.
输入格式
两个正整数a,b,其中a<b,以空格分开
输出格式
区间[a,b]内的所有孪生素数对,按从小到大顺序。每行一个素数对,其中小的在前,大的在后,以空格分开。
如果区间内没有素数对的话,输出-1.
样例输入
2 15
样例输出
3 5
5 7
11 13
样例输入
14 18
样例输出
-1
代码如下:
a,b=map(int,input().split())
c=[]
count=0
def isPrime(n): #定义素数函数
for i in range(2,n):
if n%i ==0: #素数应只有1和本身两个因子
return False
return True
for i in range(a,b+1):
if isPrime(i): #满足条件即回文素数
c.append(i)
for j in range(1,len(c)):
if c[j]-c[j-1]==2:
count+=1
print(c[j-1],c[j])
if count==0:
print(-1)