红宝石中有效的动力和模态方式

Kok*_*zzu 4 ruby

我需要知道3个值的幂和mod的值,例如:

print 1_299_709 ** 1_300_751 % 104_729
Run Code Online (Sandbox Code Playgroud)

是否有任何红宝石宝石或更快的方式使用红宝石计算这个?

Dan*_*ans 10

这称为模幂运算,在密码学中大量使用.编写模幂运算算法相当容易,演示在上面列出的维基百科文章中.

您可以使用标准库openssl来实现您的目标:

require 'openssl'
1_299_709.to_bn.mod_exp(1_300_751, 104_729) # => 90827
Run Code Online (Sandbox Code Playgroud)


ste*_*lag 9

由于内置了 Ruby 2.5 模幂运算:

print 1_299_709.pow(1_300_751, 104_729)
Run Code Online (Sandbox Code Playgroud)