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 |
#157 in Algorithms
9,081 downloads per month
Used in 15 crates
(12 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.