小学生蓝桥杯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闯关 | 密码创建的主要内容,如果未能解决你的问题,请参考以下文章