“强网杯-强网先锋-SpeedUp-wp”
题目描述
题目内容:
Just calculate a factorial。
Task
x=(pow(2,27))! (二的二十七次方的阶乘)
1 | |
flag 为 flag{sha256(f(x))}
解题过程
1.一开始想取巧的,搜了搜发现了求近似阶乘的斯特林公式,嘿不行,求得数需要准确的数字,所以必须要把数字算出来
2.然后经过一阵搜索,我发现了救赎,那就是gmpy2库中的gmpy2.fac()求阶乘的函数啦,代码这样写
1 | |
算出来的数据直接900M多。
3.数据算出来了那就开始把每一位数字相加,但是接近10亿的数字没有一个在线网页工具受得住的,放一个崩一个
经过搜索,发现Linux可以很好的处理这么大的数据
linux统计字符串频数,在Linux的命令行中实现字符出现频率统计的方法-CSDN博客
这是参考博客
我先用强大记事本将文本中的0删去,再依次将1,2,3,4,5,6,7,8,9替换为A,B,C,D,E,F,G,H,I
将文本传输至Linux虚拟机,执行指令可以得到
99923066 B
99913041 E
99908925 H
99907349 D
99903199 F
99901376 I
99895867 G
99892637 A
99884888 C
然后
1 | |
得到
1 | |
即flag{bbdee5c548fddfc76617c562952a3a3b03d423985c095521a8661d248fad3797}
“强网杯-强网先锋-SpeedUp-wp”
http://example.com/2023/12/22/“强网杯-强网先锋-SpeedUp-wp”/