use core::ops::{Div, DivAssign, Rem, RemAssign}; use num_integer::Integer; use num_traits::{CheckedDiv, CheckedEuclid, Euclid, Signed, ToPrimitive, Zero};
forward_all_binop_to_ref_ref!(impl Div for BigInt, div);
impl Div<&BigInt> for &BigInt { type Output = BigInt;
promote_all_scalars!(impl Div for BigInt, div);
promote_all_scalars_assign!(impl DivAssign for BigInt, div_assign);
forward_all_scalar_binop_to_val_val!(impl Div<u32> for BigInt, div);
forward_all_scalar_binop_to_val_val!(impl Div<u64> for BigInt, div);
forward_all_scalar_binop_to_val_val!(impl Div<u128> for BigInt, div);
forward_all_scalar_binop_to_val_val!(impl Div<i32> for BigInt, div);
forward_all_scalar_binop_to_val_val!(impl Div<i64> for BigInt, div);
forward_all_scalar_binop_to_val_val!(impl Div<i128> for BigInt, div);
impl Div<i32> for BigInt { type Output = BigInt;
#[inline] fn div(self, other: i32) -> BigInt { match other.checked_uabs() {
Positive(u) => self / u,
Negative(u) => -self / u,
}
}
}
promote_all_scalars!(impl Rem for BigInt, rem);
promote_all_scalars_assign!(impl RemAssign for BigInt, rem_assign);
forward_all_scalar_binop_to_val_val!(impl Rem<u32> for BigInt, rem);
forward_all_scalar_binop_to_val_val!(impl Rem<u64> for BigInt, rem);
forward_all_scalar_binop_to_val_val!(impl Rem<u128> for BigInt, rem);
forward_all_scalar_binop_to_val_val!(impl Rem<i32> for BigInt, rem);
forward_all_scalar_binop_to_val_val!(impl Rem<i64> for BigInt, rem);
forward_all_scalar_binop_to_val_val!(impl Rem<i128> for BigInt, rem);
impl Euclid for BigInt { #[inline] fn div_euclid(&self, v: &BigInt) -> BigInt { let (q, r) = self.div_rem(v); if r.is_negative() { if v.is_positive() {
q - 1
} else {
q + 1
}
} else {
q
}
}
#[inline] fn rem_euclid(&self, v: &BigInt) -> BigInt { let r = self % v; if r.is_negative() { if v.is_positive() {
r + v
} else {
r - v
}
} else {
r
}
}
fn div_rem_euclid(&self, v: &Self) -> (Self, Self) { let (q, r) = self.div_rem(v); if r.is_negative() { if v.is_positive() {
(q - 1, r + v)
} else {
(q + 1, r - v)
}
} else {
(q, r)
}
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.