Skip to content

Commit a71abc5

Browse files
authored
Merge pull request #202 from domix80/Problem_007
Feat: Project Euler Problem 7
2 parents bb17717 + 9c3eb05 commit a71abc5

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

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 = 10001)
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()
40+
p answer

0 commit comments

Comments
 (0)