diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..b4a7a0c --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,5 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "indivisible" +version = "0.1.0" diff --git a/src/main.rs b/src/main.rs index f79c691..bfda9e8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,2 +1,35 @@ +use std::env; + fn main() { + let args:Vec = env::args().collect(); + + // get the first `n` primes + let n:u64 = args[1].parse().unwrap(); + // first prime + println!("{}", 2); + // already have first prime + let mut prime_count = 1; + let mut candidate = 3; + + while prime_count < n + { + let mut aux = 3; + let mut is_prime = true; + while aux < candidate / 2 + { + if candidate % aux == 0 + { + is_prime = false; + break; + } + aux += 2; + } + + if is_prime + { + println!("{}", candidate); + prime_count += 1; + } + candidate += 2; + } }