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.