Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![allow(unused)]
- extern crate num;
- // prime sieve
- pub fn prime_sieve(n: u64) -> Vec<u64> {
- let mut mask = vec![1; (n+1) as usize];
- mask[0] = 0;
- mask[1] = 0;
- let mut primes = vec![2];
- // mark off multiples of 2...
- let mut i=4_usize;
- while (i as u64) < n {
- mask[i] = 0;
- i += 2_usize;
- }
- // now parse the rest of the numbers...
- i = 3_usize;
- while (i as u64) < n {
- if mask[i] == 1 {
- // haven't seen this prime yet, so add it
- primes.push(i as u64);
- let mut j = i*i;
- // now cross off all multiples of i
- while (j as u64) < n {
- mask[j] = 0;
- j += i;
- }
- }
- }
- return primes;
- }
- fn main() {
- let primes = prime_sieve(100);
- println!("primes <= 100:");
- for p in primes {
- println!("{}", p);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement