diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2023-04-03 21:35:47 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2023-04-03 21:36:13 +0400 |
| commit | 5b09f26c7cf95433528f428e56468b8ac5a4f013 (patch) | |
| tree | 863722d0e27efdfffc49c62954c4baec3bf00ca4 | |
| parent | 0047be212165de45e25215daa863526c1dac98fe (diff) | |
Добавлена b^n+1
| -rw-r--r-- | sem2/src/mpn.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sem2/src/mpn.rs b/sem2/src/mpn.rs index e8a3c16..91d3ff8 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 }; |