diff --git a/rust/nth-prime/.exercism/config.json b/rust/nth-prime/.exercism/config.json deleted file mode 100644 index 57d36ce..0000000 --- a/rust/nth-prime/.exercism/config.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "authors": [ - "sacherjj" - ], - "contributors": [ - "attilahorvath", - "cbzehner", - "coriolinus", - "cwhakes", - "eddyp", - "efx", - "ErikSchierboom", - "imbolc", - "lutostag", - "nfiles", - "petertseng", - "rofrol", - "stringparser", - "xakon", - "ZapAnton" - ], - "files": { - "solution": [ - "src/lib.rs", - "Cargo.toml" - ], - "test": [ - "tests/nth_prime.rs" - ], - "example": [ - ".meta/example.rs" - ] - }, - "blurb": "Given a number n, determine what the nth prime is.", - "source": "A variation on Problem 7 at Project Euler", - "source_url": "https://projecteuler.net/problem=7" -} diff --git a/rust/nth-prime/.gitignore b/rust/nth-prime/.gitignore deleted file mode 100644 index 96ef6c0..0000000 --- a/rust/nth-prime/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target -Cargo.lock diff --git a/rust/nth-prime/Cargo.toml b/rust/nth-prime/Cargo.toml deleted file mode 100644 index ce719bc..0000000 --- a/rust/nth-prime/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "nth_prime" -version = "0.1.0" -edition = "2024" - -# Not all libraries from crates.io are available in Exercism's test runner. -# The full list of available libraries is here: -# https://github.com/exercism/rust-test-runner/blob/main/local-registry/Cargo.toml -[dependencies] diff --git a/rust/nth-prime/HELP.md b/rust/nth-prime/HELP.md deleted file mode 100644 index 22a6c00..0000000 --- a/rust/nth-prime/HELP.md +++ /dev/null @@ -1,89 +0,0 @@ -# Help - -## Running the tests - -Execute the tests with: - -```bash -$ cargo test -``` - -All but the first test have been ignored. After you get the first test to -pass, open the tests source file which is located in the `tests` directory -and remove the `#[ignore]` flag from the next test and get the tests to pass -again. Each separate test is a function with `#[test]` flag above it. -Continue, until you pass every test. - -If you wish to run _only ignored_ tests without editing the tests source file, use: - -```bash -$ cargo test -- --ignored -``` - -If you are using Rust 1.51 or later, you can run _all_ tests with - -```bash -$ cargo test -- --include-ignored -``` - -To run a specific test, for example `some_test`, you can use: - -```bash -$ cargo test some_test -``` - -If the specific test is ignored, use: - -```bash -$ cargo test some_test -- --ignored -``` - -To learn more about Rust tests refer to the online [test documentation][rust-tests]. - -[rust-tests]: https://doc.rust-lang.org/book/ch11-02-running-tests.html - -## Submitting your solution - -You can submit your solution using the `exercism submit src/lib.rs Cargo.toml` command. -This command will upload your solution to the Exercism website and print the solution page's URL. - -It's possible to submit an incomplete solution which allows you to: - -- See how others have completed the exercise -- Request help from a mentor - -## Need to get help? - -If you'd like help solving the exercise, check the following pages: - -- The [Rust track's documentation](https://exercism.org/docs/tracks/rust) -- The [Rust track's programming category on the forum](https://forum.exercism.org/c/programming/rust) -- [Exercism's programming category on the forum](https://forum.exercism.org/c/programming/5) -- The [Frequently Asked Questions](https://exercism.org/docs/using/faqs) - -Should those resources not suffice, you could submit your (incomplete) solution to request mentoring. - -## Rust Installation - -Refer to the [exercism help page][help-page] for Rust installation and learning -resources. - -## Submitting the solution - -Generally you should submit all files in which you implemented your solution (`src/lib.rs` in most cases). If you are using any external crates, please consider submitting the `Cargo.toml` file. This will make the review process faster and clearer. - -## Feedback, Issues, Pull Requests - -Head to [the forum](https://forum.exercism.org/c/programming/rust/) and create a post to provide feedback about an exercise or if you want to help implement new exercises. -Members of the rust track team are happy to help! - -The GitHub [track repository][github] is the home for all of the Rust exercises. - -If you want to know more about Exercism, take a look at the [contribution guide]. - -## Submitting Incomplete Solutions -It's possible to submit an incomplete solution so you can see how others have completed the exercise. - -[help-page]: https://exercism.org/tracks/rust/learning -[github]: https://github.com/exercism/rust -[contribution guide]: https://exercism.org/docs/community/contributors \ No newline at end of file diff --git a/rust/nth-prime/README.md b/rust/nth-prime/README.md deleted file mode 100644 index 6737141..0000000 --- a/rust/nth-prime/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Nth Prime - -Welcome to Nth Prime on Exercism's Rust Track. -If you need help running the tests or submitting your code, check out `HELP.md`. - -## Instructions - -Given a number n, determine what the nth prime is. - -By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. - -If your language provides methods in the standard library to deal with prime numbers, pretend they don't exist and implement them yourself. - -Remember that while people commonly count with 1-based indexing (i.e. "the 6th prime is 13"), many programming languages, including Rust, use 0-based indexing (i.e. `primes[5] == 13`). Use 0-based indexing for your implementation. - -## Source - -### Created by - -- @sacherjj - -### Contributed to by - -- @attilahorvath -- @cbzehner -- @coriolinus -- @cwhakes -- @eddyp -- @efx -- @ErikSchierboom -- @imbolc -- @lutostag -- @nfiles -- @petertseng -- @rofrol -- @stringparser -- @xakon -- @ZapAnton - -### Based on - -A variation on Problem 7 at Project Euler - https://projecteuler.net/problem=7 \ No newline at end of file diff --git a/rust/nth-prime/src/lib.rs b/rust/nth-prime/src/lib.rs deleted file mode 100644 index d44f7e0..0000000 --- a/rust/nth-prime/src/lib.rs +++ /dev/null @@ -1,48 +0,0 @@ -const PRIME_LEN: usize = 10_010; -const LIMIT: usize = 106_000; - -struct PrimeCache { - primes: [u32; PRIME_LEN], -} - -impl PrimeCache { - const fn new() -> Self { - let mut primes = [0; PRIME_LEN]; - let mut sieve = [true; LIMIT]; - - sieve[0] = false; - sieve[1] = false; - - let mut i = 2; - while i * i < LIMIT { - if sieve[i] { - let mut j = i * i; - while j < LIMIT { - sieve[j] = false; - j += i; - } - } - i += 1; - } - let mut num = 0; - let mut j = 0; - while num < LIMIT && j < PRIME_LEN { - if sieve[num] { - primes[j] = num as u32; - j += 1; - } - num += 1; - } - Self { primes } - } -} - -static CACHE: PrimeCache = PrimeCache::new(); - -pub fn nth(n: u32) -> u32 { - let nth = n as usize; - if nth >= PRIME_LEN { - panic!("N more than comptime was calculated"); - } - CACHE.primes[nth] -} diff --git a/rust/nth-prime/tests/nth_prime.rs b/rust/nth-prime/tests/nth_prime.rs deleted file mode 100644 index 2661377..0000000 --- a/rust/nth-prime/tests/nth_prime.rs +++ /dev/null @@ -1,29 +0,0 @@ -use nth_prime::*; - -#[test] -fn first_prime() { - let output = nth(0); - let expected = 2; - assert_eq!(output, expected); -} - -#[test] -fn second_prime() { - let output = nth(1); - let expected = 3; - assert_eq!(output, expected); -} - -#[test] -fn sixth_prime() { - let output = nth(5); - let expected = 13; - assert_eq!(output, expected); -} - -#[test] -fn big_prime() { - let output = nth(10_000); - let expected = 104_743; - assert_eq!(output, expected); -}