试题 算法训练 孪生素数对(python)

资源限制

内存限制: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)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值