Anonymous user
Multiplicative order: Difference between revisions
→{{header|Ruby}}: corrected require (deprecated 'mathn'), add output
(Added EchoLisp) |
(→{{header|Ruby}}: corrected require (deprecated 'mathn'), add output) |
||
Line 858:
=={{header|Ruby}}==
<lang ruby>require '
def powerMod(b, p, m)
p.to_s(2).each_char.inject(1) do |result, bit|
result = (result * result) % m
end
end
Line 878 ⟶ 872:
r = 1
for q, e in t.prime_division
x = powerMod(a, t / q
while x != 1
r *= q
Line 888 ⟶ 882:
def multOrder(a, m)
m.prime_division.inject(1)
result.lcm(multOrder_(a, *f))
end
puts multOrder(37, 1000)
b = 10**20-1
puts multOrder(2, b)
puts multOrder(17,b)
b = 100001
puts multOrder(54,b)
Line 905 ⟶ 899:
puts 'Everything checks.'
end</lang>
{{out}}
<pre>
100
3748806900
1499522760
9090
1
Everything checks.
</pre>
=={{header|Seed7}}==
|