malachite_base/num/factorization/mod.rs
1// Copyright © 2025 Mikhail Hogrefe
2//
3// This file is part of Malachite.
4//
5// Malachite is free software: you can redistribute it and/or modify it under the terms of the GNU
6// Lesser General Public License (LGPL) as published by the Free Software Foundation; either version
7// 3 of the License, or (at your option) any later version. See <https://www.gnu.org/licenses/>.
8
9/// [`Factor`](traits::Factor), a trait for computing the prime factorization of a number.
10pub mod factor;
11/// [`IsPrime`](traits::IsPrime), a trait for testing a number for primality.
12pub mod is_prime;
13/// An efficient prime sieve.
14pub mod prime_sieve;
15/// [`Primes`](traits::Primes), a trait for generating prime numbers.
16///
17/// # primes_less_than
18/// ```
19/// use itertools::Itertools;
20/// use malachite_base::num::factorization::traits::Primes;
21///
22/// assert_eq!(u8::primes_less_than(&10).collect_vec(), &[2, 3, 5, 7]);
23/// assert_eq!(u16::primes_less_than(&11).collect_vec(), &[2, 3, 5, 7]);
24/// assert_eq!(
25/// u32::primes_less_than(&100).collect_vec(),
26/// &[
27/// 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
28/// 89, 97
29/// ]
30/// );
31/// ```
32///
33/// # primes_less_than_or_equal_to
34/// ```
35/// use itertools::Itertools;
36/// use malachite_base::num::factorization::traits::Primes;
37///
38/// assert_eq!(
39/// u8::primes_less_than_or_equal_to(&10).collect_vec(),
40/// &[2, 3, 5, 7]
41/// );
42/// assert_eq!(
43/// u16::primes_less_than_or_equal_to(&11).collect_vec(),
44/// &[2, 3, 5, 7, 11]
45/// );
46/// assert_eq!(
47/// u32::primes_less_than_or_equal_to(&100).collect_vec(),
48/// &[
49/// 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
50/// 89, 97
51/// ]
52/// );
53/// ```
54///
55/// # primes
56/// ```
57/// use itertools::Itertools;
58/// use malachite_base::num::factorization::traits::Primes;
59///
60/// assert_eq!(
61/// u8::primes().collect_vec(),
62/// &[
63/// 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
64/// 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179,
65/// 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251
66/// ]
67/// );
68/// ```
69pub mod primes;
70pub mod primitive_root_prime;
71/// Various traits for generating primes, primality testing, and factorization.
72pub mod traits;