Modular inverse: Difference between revisions

Content deleted Content added
Realize in F#
Xixo (talk | contribs)
Line 808: Line 808:
ИП6 ИП4 ИП5 * - П5 ИП3 П6 БП 14
ИП6 ИП4 ИП5 * - П5 ИП3 П6 БП 14
ИП6 x<0 55 ИП2 + С/П</lang>
ИП6 x<0 55 ИП2 + С/П</lang>

=={{header|newLISP}}==

(define (modular-multiplicative-inverse a n)
(if (< n 0)
(setf n (abs n)))
(if (< a 0)
(setf a (- n (% (- 0 a) n))))
(setf t 0)
(setf nt 1)
(setf r n)
(setf nr (mod a n))
(while (not (zero? nr))
(setf q (int (div r nr)))
(setf tmp nt)
(setf nt (sub t (mul q nt)))
(setf t tmp)
(setf tmp nr)
(setf nr (sub r (mul q nr)))
(setf r tmp))
(if (> r 1)
(setf retvalue -1))
(if (< t 0)
(setf retvalue (add t n))
(setf retvalue t))
retvalue)

(println (modular-multiplicative-inverse 42 2017))




=={{header|Nim}}==
=={{header|Nim}}==