Module malachite_base::num::arithmetic::primorial

source ·
Expand description

Traits for computing the primorial and the product of the first $n$ primes. There is a trait whose implementations panic if the result cannot be represented, and a checked trait whose implementations return None in that case: Primorial and CheckedPrimorial.

§primorial

use malachite_base::num::arithmetic::traits::Primorial;

assert_eq!(u8::primorial(0), 1);
assert_eq!(u8::primorial(1), 1);
assert_eq!(u8::primorial(2), 2);
assert_eq!(u8::primorial(3), 6);
assert_eq!(u8::primorial(4), 6);
assert_eq!(u8::primorial(5), 30);
assert_eq!(u32::primorial(20), 9699690);

§product_of_first_n_primes

use malachite_base::num::arithmetic::traits::Primorial;

assert_eq!(u8::product_of_first_n_primes(0), 1);
assert_eq!(u8::product_of_first_n_primes(1), 2);
assert_eq!(u8::product_of_first_n_primes(2), 6);
assert_eq!(u8::product_of_first_n_primes(3), 30);
assert_eq!(u8::product_of_first_n_primes(4), 210);
assert_eq!(u32::product_of_first_n_primes(9), 223092870);

§checked_primorial

use malachite_base::num::arithmetic::traits::CheckedPrimorial;

assert_eq!(u8::checked_primorial(0), Some(1));
assert_eq!(u8::checked_primorial(1), Some(1));
assert_eq!(u8::checked_primorial(2), Some(2));
assert_eq!(u8::checked_primorial(3), Some(6));
assert_eq!(u8::checked_primorial(4), Some(6));
assert_eq!(u8::checked_primorial(5), Some(30));

assert_eq!(u8::checked_primorial(11), None);
assert_eq!(u32::checked_primorial(20), Some(9699690));
assert_eq!(u32::checked_primorial(100), None);

§checked_product_of_first_n_primes

use malachite_base::num::arithmetic::traits::CheckedPrimorial;

assert_eq!(u8::checked_product_of_first_n_primes(0), Some(1));
assert_eq!(u8::checked_product_of_first_n_primes(1), Some(2));
assert_eq!(u8::checked_product_of_first_n_primes(2), Some(6));
assert_eq!(u8::checked_product_of_first_n_primes(3), Some(30));
assert_eq!(u8::checked_product_of_first_n_primes(4), Some(210));
assert_eq!(u32::checked_product_of_first_n_primes(9), Some(223092870));

assert_eq!(u8::checked_product_of_first_n_primes(5), None);
assert_eq!(u32::checked_product_of_first_n_primes(100), None);