Problem 29

Problem 29

module Problem_0029

(*
2 ≤ a ≤ 5 と 2 ≤ b ≤ 5について, abを全て考えてみよう:
22=4, 23=8, 24=16, 25=32
32=9, 33=27, 34=81, 35=243
42=16, 43=64, 44=256, 45=1024
52=25, 53=125, 54=625, 55=3125
これらを小さい順に並べ, 同じ数を除いたとすると,
15個の項を得る:
4, 8, 9, 16, 25, 27, 32, 64, 81, 125
, 243, 256, 625, 1024, 3125
2 ≤ a ≤ 100, 2 ≤ b ≤ 100 で同じことをしたとき
いくつの異なる項が存在するか?
*)

//9183 77 ms
let count () =
    seq {
        for a in 2I..100I do
            for b in 2..100 ->
                bigint.Pow(a,b)
    }
    |> Seq.distinct
    |> Seq.length

let run () =
    count ()