September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
19
Task/Modular-inverse/Rust/modular-inverse-2.rust
Normal file
19
Task/Modular-inverse/Rust/modular-inverse-2.rust
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
fn modinv(a0: isize, m0: isize) -> isize {
|
||||
if m0 == 1 { return 1 }
|
||||
|
||||
let (mut a, mut m, mut x0, mut inv) = (a0, m0, 0, 1);
|
||||
|
||||
while a > 1 {
|
||||
inv -= (a / m) * x0;
|
||||
a = a % m;
|
||||
std::mem::swap(&mut a, &mut m);
|
||||
std::mem::swap(&mut x0, &mut inv);
|
||||
}
|
||||
|
||||
if inv < 0 { inv += m0 }
|
||||
inv
|
||||
}
|
||||
|
||||
fn main() {
|
||||
println!("{}", modinv(42, 2017))
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue