跳转至

密码创建

题目描述

质数表

序号: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