达芬奇密码
题目:
达芬奇一直是一个有争议的画家,科学家。。。小明为了研究他,从网上找到了名画蒙娜丽莎,一天深夜,小明突然从蒙娜丽莎背后的天空中看到了一串神秘的数字。顺带告诉小明达芬奇家窗台上有一串数字是关键。小明千里迢迢找到了这串数字,请将这个送分题做出来,亲,包邮哦(答案是一串32位十进制数字) 注意:得到的 flag 请包上 flag{} 提交
达芬奇隐藏在蒙娜丽莎中的数字列:1 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711
记录在达芬奇窗台口的神秘数字串:36968853882116725547342176952286
解题思路:
看数字列,发现里边有1 1 2 3 5…所以判断这个是斐波那契数列,所以写出脚本:
a = "0 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309"
b = "0 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711"
a = a.split(" ") #整合为以一个列表
b = b.split(" ")
flag = []
m = "36968853882116725547342176952286"
for i in range(len(a)):
for j in range(len(a)):
if a[i] == b[j]:
#print(j)
flag.append(m[j]) #将m[j]中的值添加到flag中
print(''.join(flag))
解出flag:37995588256861228614165223347687