Yan Cui
I help clients go faster for less using serverless technologies.
This article is brought to you by
Don’t reinvent the patterns. Catalyst gives you consistent APIs for messaging, data, and workflow with key microservice patterns like circuit-breakers and retries for free.
Problem
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all the primes below two million.
Solution
open System let findFactorsOf(n:int64) = let upperBound = int64(Math.Sqrt(double(n))) [2L..upperBound] |> Seq.filter (fun x -> n % x = 0L) let isPrime(n:int64) = findFactorsOf(n) |> Seq.length = 0 let primeSequence max = seq { for n in 2L..max do if isPrime(n) then yield n } let sum = primeSequence 1999999L |> Seq.sum
Yet another prime number related problem, and I’ve borrowed the findFactorsOf and isPrime functions from the problem 3 solution here.
The only interesting bit of code here is the primeSequence function, which generates a sequence of prime numbers equal or greater than 2, up to the specified max using a for … in loop. The for…in loop is basically the same as a foreach (var .. in ..) loop in C#.
Whenever you’re ready, here are 3 ways I can help you:
- Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game. This is your one-stop shop for quickly levelling up your serverless skills.
- I help clients launch product ideas, improve their development processes and upskill their teams. If you’d like to work together, then let’s get in touch.
- Join my community on Discord, ask questions, and join the discussion on all things AWS and Serverless.