栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python】蓝桥杯-算法训练-孪生素数对

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python】蓝桥杯-算法训练-孪生素数对

问题描述

  差为2的两个素数被称为孪生素数对,例如3和5, 11和13.
  给定一个区间,请输出区间内所有的孪生素数对.

输入格式

  两个正整数a,b,其中a

输出格式

  区间[a,b]内的所有孪生素数对,按从小到大顺序。每行一个素数对,其中小的在前,大的在后,以空格分开。
  如果区间内没有素数对的话,输出-1.

以空格分开

思路:孪生素数是指若a为素数,且a+2也是素数,则素数a和a+2称为孪生素数。先判断n是否为素数,再判断n+2是否为素数,如果n和n+2同时为素数,则(n,n+2)就是一对孪生素数,将其打印输出即可。

a, b = map(int, input().split())
s = []
z=[]
for n in range(a, b + 1):
    for i in range(2, n):
        if n % i == 0:
            break
    else:  # 注意这里在循环里面的缩进
        if n != 1:  # 避免a=1时把1也加入列表
            s.append(n)
for i in s:
    if i + 2 in s:
        print(i,i+2)
    if i+2 not in s:
            z.append(i)
            if s==z:
                print(-1)

但是用for循环到后面大数会运行会超时,以后会了再来改善。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号