How to resolve the algorithm Modular inverse step by step in the Raku programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Modular inverse step by step in the Raku programming language
Table of Contents
Problem Statement
From Wikipedia: In modular arithmetic, the modular multiplicative inverse of an integer a modulo m is an integer x such that Or in other words, such that: It can be shown that such an inverse exists if and only if a and m are coprime, but we will ignore this for this task.
Either by implementing the algorithm, by using a dedicated library or by using a built-in function in your language, compute the modular inverse of 42 modulo 2017.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Modular inverse step by step in the Raku programming language
Source code in the raku programming language
sub inverse($n, :$modulo) {
my ($c, $d, $uc, $vc, $ud, $vd) = ($n % $modulo, $modulo, 1, 0, 0, 1);
my $q;
while $c != 0 {
($q, $c, $d) = ($d div $c, $d % $c, $c);
($uc, $vc, $ud, $vd) = ($ud - $q*$uc, $vd - $q*$vc, $uc, $vc);
}
return $ud % $modulo;
}
say inverse 42, :modulo(2017)
You may also check:How to resolve the algorithm Permutations/Rank of a permutation step by step in the PARI/GP programming language
You may also check:How to resolve the algorithm Comma quibbling step by step in the Lua programming language
You may also check:How to resolve the algorithm Run-length encoding step by step in the Bracmat programming language
You may also check:How to resolve the algorithm Rep-string step by step in the Kotlin programming language
You may also check:How to resolve the algorithm Execute Brain step by step in the Groovy programming language