Crate primes [−] [src]
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::PrimeSet; let mut pset = PrimeSet::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 millionth prime
use primes::PrimeSet; let mut pset = PrimeSet::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::PrimeSet; let mut pset = PrimeSet::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::PrimeSet; let mut pset = PrimeSet::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 handles the Sieve 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.
Structs
PrimeSet |
A prime generator, using the Sieve of Eratosthenes. |
PrimeSetIter |
An iterator over generated primes. Created by PrimeSet::iter or PrimeSet::generator |
Functions
factors |
Find all prime factors of a number Does not use a PrimeSet, but simply counts upwards |
factors_uniq |
Find all unique prime factors of a number |
is_prime |
Test whether a number is prime. Checks every odd number up to sqrt(n). |