Skip to content

Instantly share code, notes, and snippets.

@PhDP
Created January 15, 2022 22:34
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 PhDP/9c6a074b5443ddb68ab3108e076d32db to your computer and use it in GitHub Desktop.
Save PhDP/9c6a074b5443ddb68ab3108e076d32db to your computer and use it in GitHub Desktop.
euler7.rs
fn nth_primes(n: usize) -> usize {
match n {
0 => 1,
1 => 2,
2 => 3,
_ => {
let mut primes = vec![2, 3];
let mut candidate = 5;
loop {
let max = (candidate as f64).sqrt() as usize;
let mut prime = true;
for d in primes.iter().skip(1) {
if *d > max {
break;
}
if candidate % *d == 0 {
prime = false;
break;
}
}
if prime {
primes.push(candidate);
if primes.len() == n {
return candidate;
}
}
candidate += 2;
}
},
}
}
fn main() {
println!("6th prime: {}", nth_primes(6));
println!("10 001th prime: {}", nth_primes(10001));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment