module ArmstrongNumbers let intFromChar a = int a - int '0' // a ^ b where they are both ints let rec intPow (a: int) (b: int) = if b = 0 then 1 else a * (intPow a (b - 1)) let isArmstrongNumber (number: int): bool = let len = String.length (string (number)) number = (Seq.toList (string (number)) |> Seq.fold (fun a c -> a + (intPow (intFromChar c) len)) 0)