理系学生日記

おまえはいつまで学生気分なのか

問題1-26

squareを使わずに*を使うと、以下の部分でexpmodが2度評価される。

(* (expmod base (/ exp 2) m)
   (expmod base (/ exp 2) m))

expmod自体はO(\log n)なため、この部分のオーダーはO(2^{\log n})となり結局O(n)