From 22f0b3f854c23904e84a305df84872ed7c472d14 Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Mon, 3 Apr 2023 21:35:47 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=20b^n+1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sem2/src/mpn.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sem2/src/mpn.rs b/sem2/src/mpn.rs index 97ba55d..1709136 100644 --- a/sem2/src/mpn.rs +++ b/sem2/src/mpn.rs @@ -301,10 +301,16 @@ impl Number { ) .unwrap(); + let b_num = Number::from_digits(&vec![0, 1], self.radix).unwrap(); + let mut b_pow = Number::from_digits(&vec![1], self.radix).unwrap(); + for _ in 0..=n { + b_pow = b_pow * b_num.clone(); + } + let (p, q) = if u_sub >= qv { (u_sub - qv, q as u8) } else { - (u_sub + v_number.clone() - qv, (q - 1) as u8) + (u_sub + b_pow - qv + v_number.clone(), (q - 1) as u8) }; for i in 0..n + 1 { u[j + i] = if i < p.len() { p.digits[i] } else { 0 }; -- cgit v1.2.3