以上两个代码最大的不同在于上面代码每次调用后返回的结果都会用remainder操作进行化简,比如(9*9*9*9*9)%4=((9%4)*(9%4)*(9%4)*(9%4)*(9%4))%9=1(利用这个办法使得中间计算过程得到的中间结果一直维持在一个比较小的数,使得计算不用涉及较大的数值就可以加快计算速度
关于上述定理成立:(x*x)%z=((z+y)*(z+y))%z=(y*y)%z=((z+y)%z*(z+y)%z)%z
以上两个代码最大的不同在于上面代码每次调用后返回的结果都会用remainder操作进行化简,比如(9*9*9*9*9)%4=((9%4)*(9%4)*(9%4)*(9%4)*(9%4))%9=1(利用这个办法使得中间计算过程得到的中间结果一直维持在一个比较小的数,使得计算不用涉及较大的数值就可以加快计算速度
关于上述定理成立:(x*x)%z=((z+y)*(z+y))%z=(y*y)%z=((z+y)%z*(z+y)%z)%z