diff --git a/project_euler/problem_010/sol1.rb b/project_euler/problem_010/sol1.rb new file mode 100644 index 00000000..053fb624 --- /dev/null +++ b/project_euler/problem_010/sol1.rb @@ -0,0 +1,42 @@ +#Project Euler Problem 10: https://projecteuler.net/problem=10 +#Summation of primes +#The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. +#Find the sum of all the primes below two million. +#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(max_total = 2000000) + sum = 1 + num = 2 + value = 1 + while num < max_total and value < max_total + if is_prime?(num) + value += num + if value < max_total + sum = value + end + end + num += 1 + end + result = sum +end + +answer = solution() +p answer \ No newline at end of file