2018年5月1日火曜日

ksnctf math Ⅱをトレース

解答では2分探索で解けるとのこと。
以下のところで、FLAGは得られた。
ksnctf #17 Math II

ただし、対数の計算では正確な数字を得られなかった。

Y^101=X(X=12341234と仮で置き換え)
となるYを求める。

logyY^101=logyX
101=logy12341234
logy12341234=log1012341234 / log10Y

と対数の公式から置き換えられる。

pythonが導入された環境で
log1012341234(1234は問題上のx=の数字)を解く。

>>import math
>>print(math.log(10,2748……))
3912.43902305

logy12341234=log1012341234 / log10Y=101
より
101*log10Y=log1012341234 =3912.43902305

log10Y=3912.43902305 / 101 = 38.7370200302
>>print 3912.43902305 / 101
で計算
Y=10^38.7370200302
10の約38乗が今回の答え。
ただしpythonで求めると
>>print(math.pow(10,38.7370200302))
5.45783032701e+38
となった。
この値では、不正解だった。
解答の値と比較すると考え方は問題ない。
ただし、上記の計算方法だとeという文字が表示されてしまいすべてを数字で表現できなかった。

0 件のコメント:

コメントを投稿