**Presently sponsored by Serverless Guru:**Your guide to cloud excellence, helping you every step of your serverless journey, including team training, pattern development, mass service migrations, architecting, and developing new solutions. Speak to a Guru today.

#### Problem

Consider all integer combinations of a^{b}for $latex 2 \leq a \leq 5 $ and $latex 2 \leq b \leq 5$:

2^{2}=4, 2^{3}=8, 2^{4}=16, 2^{5}=32

3^{2}=9, 3^{3}=27, 3^{4}=81, 3^{5}=243

4^{2}=16, 4^{3}=64, 4^{4}=256, 4^{5}=1024

5^{2}=25, 5^{3}=125, 5^{4}=625, 5^{5}=3125

If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms:

4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125

How many distinct terms are in the sequence generated by a^{b}for $latex 2 \leq a \leq 100$ and $latex 2 \leq b \leq 100$?

#### Solution

let getCombos a b = [2I..a] |> List.collect (fun x -> [2..b] |> List.map (fun y -> (x, y))) let answer = getCombos 100I 100 |> List.map (fun (a, b) -> pown a b) |> List.sort |> Seq.distinct |> Seq.length