15 releases
| 0.4.0 | Jun 7, 2024 |
|---|---|
| 0.3.0 | Mar 8, 2020 |
| 0.2.4 | Dec 26, 2019 |
| 0.2.3 | Aug 29, 2018 |
| 0.1.0 | Nov 26, 2014 |
#688 in Algorithms
2,747 downloads per month
Used in 20 crates
(14 directly)
15KB
303 lines
primes
A prime generator for Rust.
This package is available on crates.io as primes.
This package provides an iterator over all primes, generating them lazily as it goes.
The simplest usage is simply to create an Iterator:
use primes::PrimeSet;
let mut pset = PrimeSet::new();
for (ix, n) in pset.iter().enumerate().take(10) {
println!("Prime {}: {}", ix, n);
}
For more examples, see the full documentation!
lib.rs:
A basic library for finding primes, providing a basic Iterator over all primes. It is not as fast as
slow_primes, but it is meant to be easy to use!
The simplest usage is simply to create an Iterator:
use primes::{Sieve, PrimeSet};
let mut pset = Sieve::new();
for (ix, n) in pset.iter().enumerate().take(10) {
println!("Prime {}: {}", ix, n);
}
This library provides methods for generating primes, testing whether a number is prime, and factorizing numbers. Most methods generate primes lazily, so only enough primes will be generated for the given test, and primes are cached for later use.
Example: Find the first prime after 1 million
use primes::{Sieve, PrimeSet};
let mut pset = Sieve::new();
let (ix, n) = pset.find(1_000_000);
println!("Prime {}: {}", ix, n);
Example: Find the first ten primes after the thousandth prime
use primes::{Sieve, PrimeSet};
let mut pset = Sieve::new();
for (ix, n) in pset.iter().enumerate().skip(1_000).take(10) {
println!("Prime {}: {}", ix, n);
}
Example: Find the first prime greater than 1000
use primes::{Sieve, PrimeSet};
let mut pset = Sieve::new();
let (ix, n) = pset.find(1_000);
println!("The first prime after 1000 is the {}th prime: {}", ix, n);
assert_eq!(pset.find(n), (ix, n));
For more info on use, see PrimeSet, a class which encapsulates most of the functionality and has
multiple methods for iterating over primes.
This also provides a few functions unconnected to PrimeSet, which will be faster for the first
case, but slower in the long term as they do not use any caching of primes.