summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2023-04-03 21:35:47 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2023-04-03 21:36:13 +0400
commit5b09f26c7cf95433528f428e56468b8ac5a4f013 (patch)
tree863722d0e27efdfffc49c62954c4baec3bf00ca4
parent0047be212165de45e25215daa863526c1dac98fe (diff)
Добавлена b^n+1
-rw-r--r--sem2/src/mpn.rs8
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 };