Skip to content

Instantly share code, notes, and snippets.

@takuma-saito
Created May 17, 2019 04:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takuma-saito/c6688ed2685fdc4bd4e64467a3002f8c to your computer and use it in GitHub Desktop.
Save takuma-saito/c6688ed2685fdc4bd4e64467a3002f8c to your computer and use it in GitHub Desktop.
primes.rs
fn primes(limit: i32) -> Vec<i32> {
let mut items = vec![true; (limit + 1) as usize];
let mut primes = Vec::<i32>::new();
let up = (limit as f32).sqrt() as i32 + 1;
let mut i = 2;
items[0] = false;
items[1] = false;
while i <= up {
let mut v = 2;
if !items[i as usize] {
i += 1;
continue;
}
while (v*i) < limit {
items[(v*i) as usize] = false;
v += 1;
}
i += 1;
}
for k in 1..limit {
if items[k as usize] { primes.push(k) }
}
return primes;
}
fn main() {
//let N = 100000;
let N = 10000000;
for p in &primes(N) {
println!("{}", p);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment