Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. #![allow(unused)]
  2.  
  3. extern crate num;
  4.  
  5. // prime sieve
  6. pub fn prime_sieve(n: u64) -> Vec<u64> {
  7. let mut mask = vec![1; (n+1) as usize];
  8. mask[0] = 0;
  9. mask[1] = 0;
  10. let mut primes = vec![2];
  11. // mark off multiples of 2...
  12. let mut i=4_usize;
  13. while (i as u64) < n {
  14. mask[i] = 0;
  15. i += 2_usize;
  16. }
  17. // now parse the rest of the numbers...
  18. i = 3_usize;
  19. while (i as u64) < n {
  20. if mask[i] == 1 {
  21. // haven't seen this prime yet, so add it
  22. primes.push(i as u64);
  23. let mut j = i*i;
  24. // now cross off all multiples of i
  25. while (j as u64) < n {
  26. mask[j] = 0;
  27. j += i;
  28. }
  29. }
  30. }
  31. return primes;
  32. }
  33.  
  34.  
  35. fn main() {
  36. let primes = prime_sieve(100);
  37. println!("primes <= 100:");
  38. for p in primes {
  39. println!("{}", p);
  40. }
  41.  
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement