當計算 a^b mod m 時可以把 b 轉成二進位
如此一來當 b 的某一位是 1 時,就可以將 a 乘上 該位的冪次
舉例來說:
在 2^13 中,13 就可以寫成 1101
我們把每一位的 1 拆解開來,並轉成十進位,可以得到 8 + 4 + 1
故推得 2^13 = 2^(8 + 4 + 1) = (2^8) * (2^4) * (2^1)
如此一來,我們只需要用迴圈完成 2 的冪次即可
程式碼: