注明:这是搬运我的知乎账号fangshi里的文章洛谷P1045麦森数题解
题目大意
给定正整数,求
的位数和其的后五百位。
题目解答
我们将题目分为两步处理。
(1)第一步——算
的位数
因为的位数为
,所以我们只需将
转化成
即可。
又因为,
所以,
所以。
所以位数是.
(2)第二步——算后五百位
我们要算的的后500位如果不用快速幂要
次for循环,必定超时,所以我们得先写一个快速幂。
数据很大,在写快速幂时,要用高精度乘法。接着把的后500位存下来,for循环输出即可。