假设我们有整数a, b与除数m ,那么假设
a % m = j , b % m = t , 有整数 i , s , 使 a=im+jb=sm+t
所以有 a⋅b=(im+j)⋅(sm+t)=ism2+jsm+itm+jt
推出 (a⋅b)modm=(ism2+jsm+itm+jt)modm=jtmodm=((amodm)(bmodm))modm
所以
对于像7123456789%65536这样的大数幂模运算,我们可以把大数幂m拆分成形如m=m1+m2+...+mn这样的形式,那么nm=nm1+m2+...+mn=nm1nm2⋅...nmn,这样通过上面的公式我们就可以很容易算出大数幂了.
因为 abcmodm=((ab)⋅c)modm=(((ab)modm)(cmodm))modm=(((amodm)(bmodm)modm)(cmodm))modm
依次类推既可.
我们再考虑大数幂m要如何分解成形如m=m1+m2+...+mn的形式.
观察211