func isArmstrongNumber3(n: int): bool = var total = 0 exponent = 1 let digits = n.float32.log10.ceil.int while exponent < n: let d = (n div exponent) mod 10 total += d ^ digits exponent = 10 n == total