小学生蓝桥杯Python闯关 | 密码创建

Posted COCOgsta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小学生蓝桥杯Python闯关 | 密码创建相关的知识,希望对你有一定的参考价值。

学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间。

附上汇总贴:小学生蓝桥杯Python闯关 | 汇总_COCOgsta的博客-CSDN博客


【题目描述】

质数表

序号:1 2 3 4 5 6 7 8 ...

质数:2 3 5 7 11 13 17 19 ...

由于众多网站和APP都需要登录密码,而学校的信息课又教育小蓝,尽量不要设置相同的密码。如此多的密码设置让小蓝觉得不胜烦扰。于是小蓝想了一个办法,用他挚爱的质数来构建密码。构建方法如下:小蓝会想好两个小写字母,然后找到这两个小写字母在字母表当中的序数(如a为第1个,d为第4个,z为第26个),再将这两个序数当做起点和终点,得到一串连续的自然数。最后以这个连续自然数作为质数表中的序数,找到对应的质数并串在一起,这样就得到他的密码啦!

比如小蓝想的字母是a,c,对应的序号是1,3,对应的连续自然数是1,2,3,对应的质数是2,3,5,串在一起则他的密码是235。

给定两个小写字母,按照小蓝的办法输出他的密码。

【输入描述】

两个小写字母(以逗号隔开)

【输出描述】

一串由若干个质数串在一起的“密码”(质数之间无分隔)

【样例输入】

a,c

【样例输出】

235

【代码详解】

ls = input().split(",")
pList = []
count = 0
num = 0

num1 = ord(ls[0]) - 97
num2 = ord(ls[1]) - 97

# 创建质数列表
def isPrime(n):
    if n == 1:
        return False
    else:
        for i in range(2, n):
            if n % i == 0:
                return False
        return True
while count < 26:
    num = num + 1
    if isPrime(num):
        pList.append(num)
        count = count + 1

list = []

if num1 < num2:
    for i in range(num1, num2 + 1):
        list.append(pList[i])
elif num1 > num2:
    for i in range(num1, num2-1, -1):
        list.append(pList[i])

res = ''
for i in list:
    res = res + str(i)

print(res)
复制代码

【运行结果】

o,k
4743413731

以上是关于小学生蓝桥杯Python闯关 | 密码创建的主要内容,如果未能解决你的问题,请参考以下文章

小学生蓝桥杯Python闯关 | 回文日期

小学生蓝桥杯Python闯关 | 纯质数

小学生蓝桥杯Python闯关 | 移动方格

小学生蓝桥杯Python闯关 | 健康判断

小学生蓝桥杯Python闯关 | 数的性质

小学生蓝桥杯Python闯关 | 绘制菱形