From bc455a62c56d58eeab636dba6ee77234acfa9661 Mon Sep 17 00:00:00 2001 From: domix80 Date: Sun, 19 Feb 2023 11:30:30 +0100 Subject: [PATCH] Feat: Project Euler Problem 7 --- DIRECTORY.md | 2 ++ project_euler/problem_007/sol1.rb | 40 +++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 project_euler/problem_007/sol1.rb diff --git a/DIRECTORY.md b/DIRECTORY.md index 51a0e9e..2fb4b77 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -153,6 +153,8 @@ * [Sol2](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_004/sol2.rb) * Problem 005 * [Sol1](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_005/sol1.rb) + * Problem 007 + * [Sol1](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_007/sol1.rb) * Problem 020 * [Sol1](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_020/sol1.rb) * Problem 021 diff --git a/project_euler/problem_007/sol1.rb b/project_euler/problem_007/sol1.rb new file mode 100644 index 0000000..a249557 --- /dev/null +++ b/project_euler/problem_007/sol1.rb @@ -0,0 +1,40 @@ +#Project Euler Problem 7: #https://projecteuler.net/problem=7 +#10001st prime +#By listing the first six prime numbers: 2, 3, 5, 7, 11, #and 13, we +#can see that the 6th prime is 13. +#What is the 10001st prime number? +#References: https://en.wikipedia.org/wiki/Prime_number + +def is_prime?(number) + value = true + if number > 1 and number < 4 + # 2 and 3 are primes + value = true + elsif number < 2 or number % 2 == 0 or number % 3 == 0 + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes + value = false + end + end_range = (Math.sqrt(number) + 1).to_i + # All primes number are in format of 6k +/- 1 + for i in (5..end_range).step(6) + if number % i == 0 or number % (i + 2) == 0 + value = false + end + end + result = value +end + +def solution?(nth) + primes = Array.new() + num = 2 + while primes.length < nth + if is_prime?(num) + primes.append(num) + end + num += 1 + end + primes[primes.length - 1] +end + +answer = solution?(1001) +p answer \ No newline at end of file