[WUSTCTF2020]大数计算

题目附件:

 

 

 题目描述内容:

 

 

 图片附件内容:

分析题意,很明显是要我们求出每一部分的part的解,最后用“-”连接,并包上 wctf2020{}

(1)求解第一部分:Part1 = 2020*2019*2018* ... *3*2*1 的前8位

根据要求直接写代码:

part1 = 1
for i in range(1,2021):
part1 *= i
print("part1 =",str(part1)[:8])
# part1 = 38609695

(2)求解第二部分:Part2 = 520^1314 + 2333^666 的前8位
根据要求直接写代码:
part2 = 520**1314 + 2333**666
print("part2 =",str(part2)[:8])
# part2 = 67358675

(3)求解第三部分:Part3 = 宇宙终极问题的答案 x,y,z绝对值和的前8位
这里宇宙终极问题的答案网站(http://www.360doc.com/content/19/0907/17/28085222_859686590.shtml)
得到
42 =(-80538738812075974)³+ 80435758145817515³+ 12602123297335631³,这里是取三个数值的绝对值

直接写代码:
x = 80538738812075974
y = 80435758145817515
z = 12602123297335631
part3 = x + y + z
print("part3 =",str(part3)[:8])
# part3 = 17357662

(4)求解第四部分:Part4 = 见图片附件,计算结果乘上1314

可以算出(2*22+36)*1314 = 683280

最后将这四个部分的值转为16进制,flag等于 wctf2020{Part1-Part2-Part3-Part4} 每一Part都为数的十六进制形式(不需要0x),并用 '-' 连接
代码如下:
part1 = hex(38609695)[2:]
part2 = hex(67358675)[2:]
part3 = hex(17357662)[2:]
part4 = hex(683280)[2:]
print("wctf2020{"+part1+"-"+part2+"-"+part3+"-"+part4+"}")
# wctf2020{24d231f-403cfd3-108db5e-a6d10}
 
 
 
posted @ 2022-12-02 16:22  Pevilo7x  阅读(372)  评论(0)    收藏  举报