大量的模幂

时间:2019-05-05 06:29:08

标签: racket

以下代码很慢:

(define base 2945795152904547855448158643091235482997756069461486099501216307557115896772)
(define prime 115792089237316195423570985008687907852837564279074904382605163141518161494337)

(modulo (expt base (- prime 2)) prime)

有什么办法可以更快地做到这一点?

例如,Python具有pow内置函数,可以快速计算该函数。

1 个答案:

答案 0 :(得分:4)

罗塞塔代码中有a Racket implementation

它使用modular-expt中的math

Documentation

示例:

> (modulo (expt -6 523) 19)
13
> (modular-expt -6 523 19)
13
> (modular-expt 9 158235208 19)
4