考虑这样一个性质。
我们定义 (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)=plog^2_{10}+1) .
第一问解决。
然后快速幂和高精度直接求最后 (500) 位即可。注意换行。
题解清楚么?