![](https://res.cloudinary.com/theburningmonk/image/upload/f_auto,c_scale,w_90/theburningmonk.com/mugshot.png)
Yan Cui
I help clients go faster for less using serverless technologies.
This article is brought to you by
The real-time data platform that empowers developers to build innovative products faster and more reliably than ever before.
Problem
Triangle, pentagonal, and hexagonal numbers are generated by the following formulae:
![]()
It can be verified that T285 = P165 = H143 = 40755.
Find the next triangle number that is also pentagonal and hexagonal.
Solution
let naturalNumbers n = Seq.unfold (fun state -> Some(state, state + 1I)) n // define the function T, P and H let T n = n * (n + 1I) / 2I let P n = n * (3I * n - 1I) / 2I let H n = n * (2I * n - 1I) // define the sequences for each function from the point the brief left off at let TSeq = naturalNumbers 285I |> Seq.map T let PSeq = naturalNumbers 165I |> Seq.map P let HSeq = naturalNumbers 143I |> Seq.map H let answer = HSeq |> Seq.skip 1 |> Seq.filter (fun h -> PSeq |> Seq.takeWhile (fun p -> p <= h) |> Seq.exists (fun p -> p = h)) |> Seq.filter (fun h -> TSeq |> Seq.takeWhile (fun t -> t <= h) |> Seq.exists (fun t -> t = h)) |> Seq.head
Whenever you’re ready, here are 4 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.
- Do you want to know how to test serverless architectures with a fast dev & test loop? Check out my latest course, Testing Serverless Architectures and learn the smart way to test serverless.
- 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.