[][src]Crate primes

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.

Source

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.

Structs

PrimeSetIter

An iterator over generated primes. Created by PrimeSet::iter or PrimeSet::generator

Sieve

A prime generator, using the Sieve of Eratosthenes method. This is asymptotically more efficient than the Trial Division method, but slower earlier on.

TrialDivision

A prime generator, using the Trial Division method.

Traits

PrimeSet
PrimeSetBasics

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).