[NOIp2003] 麦森数 题解
考虑这样一个性质。
我们定义 \(\operatorname{Digit}(x)\) 是 \(x\) 的数位个数。
显然 \(\operatorname{Digit}(2^p)=\operatorname{Digit}(2^p-1)\) ,至于为什么,请读者自证。
则必有一个数 \(x\) 使得 \(\operatorname{Digit}(10^x)=\operatorname{Digit}(2^p)=\operatorname{Digit}(2^p-1)\).
稍微推一下式子就可以得到 \(\operatorname{Digit}(2^p-1)=p\log^2_{10}+1\) .
第一问解决。
然后快速幂和高精度直接求最后 \(500\) 位即可。注意换行。
题解清楚么?