■剰余の計算(その11)

[Q]30^30 mod 47,すなわち,30^30を47で割ったときの余りを求めよ.

===================================

 反復2倍乗法を応用した反復平方による累乗法を用いると,

  30=2+2^2+2^3+2^4

  30^30=30^(2+2^2+2^3+2^4)=30~2・30^(2^2)・30^(2^3)・30^(2^4)

  30^2=900=7

  30^(2^2)=(30^2)^2=49=2

  30^(2^3)=((30^2)^2)^2)=4

  30^(2^4)=(((30^2)^2)^2)^2)=16

  30^30=30^(2+2^2+2^3+2^4)=30~2・30^(2^2)・30^(2^3)・30^(2^4)=896=3

===================================