Project Euler Part 3
August 15, 2021
Welcome back!
Lets continuing our journey through the Euler Project.
8th problem:
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 10 001st prime number?
So how do we determine if a number is a prime?
🤔
We know a number n
is prime number if its a natural number greater than 1 that is not a product of two smaller natural numbers.
- So we create a list called
divisors
from 2 to the square root (highest product number to be a prime) ofn
. (clojurerange
came in handy here!) - We can
map
thisdivisors
list into function that generates a new listremainders
where we get the remainder ofn
with every possibledivisor
. - We return true if non (
not-any?
) of theremainders
list is0
.
Let us create a function that generates a list of n
amount of primes.
and just returns the nth
prime number.
Ok lets break this apart into smaller bites.
- Lets start with
n
as 2 and move our way upwards. - We ask if the n is
prime?
if it is we add it to the listprimes
. - We stop iterating over
n
when we’ve found thenth
prime.
Problem 7th
This reminded me a lot of our Bowling Kata, the way we add the bonus but in this we multiply bonuses.
I tackled this problem by first making a list of digits in the order the problem is providing them.
After creating the list I just loop over the list by take
ing n
next numbers and checking if the prodcut of them is bigger than the previous.
If the product is bigger than the previous product then we call the recursion loop again with the new biggest product and drop
ing the first digit from the list.
Otherwise, we just continue until we evaluated all the products in the list and return the biggest-product!
Problem 10
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all the primes below two million.
Ha! another prime numbers problem! Good we have some nice functions from previous problems.
I’m going to leverage my prime list generation function here and just loop over the generation until the number reaches 2 million.
After that I’ll just apply
+ to the list and solve the problem! EZ!
😎
Want to hear more from me?
Signup to my newsletter!
CarrerasDev Newsletter
A free email newsletter on how to create high-performing development teams.
Written by Edgardo Carreras.