From fc8d16b6b8d9255bb552db69becda1b5c3514989 Mon Sep 17 00:00:00 2001 From: Guilhem MARION Date: Mon, 8 Feb 2021 18:55:40 +1100 Subject: [PATCH] Chinese Remainder: Avoid map/zip/map courtesy of mamad :3 --- chinese_remainder/src/lib.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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