Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
16
Task/Modular-inverse/Icon/modular-inverse-1.icon
Normal file
16
Task/Modular-inverse/Icon/modular-inverse-1.icon
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
procedure main(args)
|
||||
a := integer(args[1]) | 42
|
||||
b := integer(args[2]) | 2017
|
||||
write(mul_inv(a,b))
|
||||
end
|
||||
|
||||
procedure mul_inv(a,b)
|
||||
if b == 1 then return 1
|
||||
(b0 := b, x0 := 0, x1 := 1)
|
||||
while a > 1 do {
|
||||
q := a/b
|
||||
(t := b, b := a%b, a := t)
|
||||
(t := x0, x0 := x1-q*x0, x1 := t)
|
||||
}
|
||||
return if (x1 > 0) then x1 else x1+b0
|
||||
end
|
||||
19
Task/Modular-inverse/Icon/modular-inverse-2.icon
Normal file
19
Task/Modular-inverse/Icon/modular-inverse-2.icon
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
link numbers
|
||||
|
||||
procedure main(args)
|
||||
a := integer(args[1]) | 42
|
||||
b := integer(args[2]) | 2017
|
||||
write(mul_inv(a,b))
|
||||
end
|
||||
|
||||
procedure mul_inv(a,b)
|
||||
if b == 1 then return 1
|
||||
if gcd(a,b) ~= 1 then return "not coprime"
|
||||
(b0 := b, x0 := 0, x1 := 1)
|
||||
while a > 1 do {
|
||||
q := a/b
|
||||
(t := b, b := a%b, a := t)
|
||||
(t := x0, x0 := x1-q*x0, x1 := t)
|
||||
}
|
||||
return if (x1 > 0) then x1 else x1+b0
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue