diff --git a/chinese_remainder/src/lib.rs b/chinese_remainder/src/lib.rs index 467e9e3..c8ecc0b 100644 --- a/chinese_remainder/src/lib.rs +++ b/chinese_remainder/src/lib.rs @@ -46,11 +46,9 @@ pub fn chinese_remainder(residues: &[i64], moduli: &[i64]) -> Option { // TODO: Filter out 0s in moduli (meaning big_n is 0 -> div by 0) let big_n: i64 = moduli.iter().product(); Some(moduli.iter() - .map(|&ni| { - egcd(ni, big_n / ni) - }) .zip(residues) - .map(|(egcd,ai)| { + .map(|(&ni, ai)| { + let egcd = egcd(ni, big_n / ni); if egcd.gcd != 1 { // Fail in case moduli are not co-prime None