如何找到2 ^ 2009的最后一位数字

时间:2013-07-07 07:20:27

标签: algorithm math binary

我使用这个公式来计算2 ^ n的最后m位数。

pow=2+(n-m)%(4*5^(m-1))  
ans =(2^pow)%(10^m)**  

但这不适用于n=2009m=3。 建议我的计算中的任何错误或更好的公式。

1 个答案:

答案 0 :(得分:1)

我不明白你的公式在做什么,但最简单的方法是计算(2^2009)%(10^m)。以下是在(x^y)%mod中查找O(log y)的伪代码。放x=2, y=2009mod=10^m

power(x,y)
{
    if( y == 0)
        return 1
    temp = power(x, y/2)
    if (y%2 == 0)
        return (temp*temp)%mod
    else
        return ((x*temp%mod)*temp)%mod
}