From eb4405e1c33ab42f742422bf91e09fd6a779f3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Fri, 26 Feb 2021 18:22:20 +0100 Subject: [PATCH] Basic prime number calculation. --- Cargo.lock | 5 +++++ src/main.rs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 Cargo.lock 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; + } }