How to sum the digits of the number 2^N in Swift

1 Answer

0 votes
import Foundation

func calculate2PowerNAsDigits(_ n: Int) -> [Int] {
    var digits = [1] // Least significant digit first

    for _ in 1...n {
        var carry = 0
        for i in 0..<digits.count {
            let num = digits[i] * 2 + carry
            digits[i] = num % 10
            carry = num / 10
        }

        while carry > 0 {
            digits.append(carry % 10)
            carry /= 10
        }
    }

    return digits
}

func sumOfDigits(ofPower exponent: Int) -> Int {
    let digits = calculate2PowerNAsDigits(exponent)
    
    return digits.reduce(0, +)
}

let testCases = [15, 100, 1000]
for n in testCases {
    print("Sum of digits of 2^\(n) is: \(sumOfDigits(ofPower: n))")
}



/*
run:

Sum of digits of 2^15 is: 26
Sum of digits of 2^100 is: 115
Sum of digits of 2^1000 is: 1366

*/

 



answered Aug 2, 2025 by avibootz
...