Skip to content

Commit bc455a6

Browse files
committed
Feat: Project Euler Problem 7
1 parent e2f6bd9 commit bc455a6

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

DIRECTORY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@
153153
* [Sol2](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_004/sol2.rb)
154154
* Problem 005
155155
* [Sol1](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_005/sol1.rb)
156+
* Problem 007
157+
* [Sol1](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_007/sol1.rb)
156158
* Problem 020
157159
* [Sol1](https://github.com/TheAlgorithms/Ruby/blob/master/project_euler/problem_020/sol1.rb)
158160
* Problem 021

project_euler/problem_007/sol1.rb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#Project Euler Problem 7: #https://projecteuler.net/problem=7
2+
#10001st prime
3+
#By listing the first six prime numbers: 2, 3, 5, 7, 11, #and 13, we
4+
#can see that the 6th prime is 13.
5+
#What is the 10001st prime number?
6+
#References: https://en.wikipedia.org/wiki/Prime_number
7+
8+
def is_prime?(number)
9+
value = true
10+
if number > 1 and number < 4
11+
# 2 and 3 are primes
12+
value = true
13+
elsif number < 2 or number % 2 == 0 or number % 3 == 0
14+
# Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
15+
value = false
16+
end
17+
end_range = (Math.sqrt(number) + 1).to_i
18+
# All primes number are in format of 6k +/- 1
19+
for i in (5..end_range).step(6)
20+
if number % i == 0 or number % (i + 2) == 0
21+
value = false
22+
end
23+
end
24+
result = value
25+
end
26+
27+
def solution?(nth)
28+
primes = Array.new()
29+
num = 2
30+
while primes.length < nth
31+
if is_prime?(num)
32+
primes.append(num)
33+
end
34+
num += 1
35+
end
36+
primes[primes.length - 1]
37+
end
38+
39+
answer = solution?(1001)
40+
p answer

0 commit comments

Comments
 (0)