From 65cb25cdfd99dbf52fd4941a47e0d853bd63c56c Mon Sep 17 00:00:00 2001 From: laentropia Date: Mon, 27 Apr 2026 17:34:41 -0600 Subject: [PATCH] addition: reduce, gcd and correct_sign --- src/lib.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 140eba1..fecfa75 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -54,15 +54,27 @@ impl Fraction { } fn gcd(a: i64, b: i64) -> i64 { - todo!(); + if a == 0 { + return b; + } + Fraction::gcd(b % a, a) } fn reduce(&mut self) { - todo!(); + let gdc = Fraction::gcd(self.num, self.den); + + self.num /= gdc; + self.den /= gdc; } fn correct_sign(&mut self) { - todo!() + if self.num < 0 && self.den < 0 { + self.num = self.num.abs(); + self.den = self.den.abs(); + } else if self.den < 0 { + self.num = -self.num; + self.den = self.den.abs(); + } } }