2 unstable releases
| 0.4.0 | Mar 31, 2024 |
|---|---|
| 0.3.0 | Mar 29, 2024 |
#2216 in Algorithms
27 downloads per month
8KB
110 lines
Divisors-fixed
A minimalistic crate for finding all divisors of an integer. Although its worst-case time complexity is (currently) still O(sqrt(n)), It is practically much faster than the naive method of trying every integers under sqrt(n).
This library works with u8, u16, u32, u64, u128,
and usize types.
This originally started as a clone of the divisors crate with bug fixes (hence the name), but has since evolved with API changes and reimplementations.
Example
let n = 240u32;
println!("{:?}", n.divisors_unordered());
println!("{:?}", n.divisors());
/*
Output:
[1, 2, 4, 8, 16, 3, 6, 12, 24, 48, 5, 10, 20, 40, 80, 15, 30, 60, 120, 240]
[1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 40, 48, 60, 80, 120, 240]
*/
Usage
Add this to your Cargo.toml:
[dependencies]
divisors = "0.4.0"
Documentations
cargo doc --open
Benchmarks
cargo bench
Test
cargo test
License
MIT.