嗯,这很容易,你可以自己做
- 位数可以通过对数获得:
since `A^B = 10 ^ (B * log(A, 10))`
(A = 1234567; B = 98787878)
在我们的例子中,我们可以计算出
`B * log(A, 10) = 98787878 * log(1234567, 10) = 601767807.4709646...`
integer part + 1
( 601767807 + 1
= 601767808 ) 是位数
首先,比如说,五位数字也可以通过对数得到;现在我们应该分析小数部分
B * log(A, 10)
= 98787878 * log(1234567, 10)
= 601767807.4709646...
f = 0.4709646...
第一个数字是10^f
(删除小数点)= 29577 ...
最后,比如说,五位数字可以作为相应的余数获得:
最后五位数 =A^B rem 10^5
A rem 10^5 = 1234567 rem 10^5 = 34567
A^B rem 10^5 = ((A rem 10^5)^B) rem 10^5 = (34567^98787878) rem 10^5 = 45009
后五位是45009
您可能会发现BigInteger.ModPow
(C#) 在这里非常有用
最后
1234567^98787878 = 29577...45009(601767808 位)