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

1 Answer

0 votes
package main

import (
    "fmt"
    "math/big"
)

func sumOfDigits(n int64) int {
    // Compute 2^n using big.Int
    two := big.NewInt(2)
    power := new(big.Int).Exp(two, big.NewInt(n), nil)

    // Convert to string and sum digits
    digits := power.String()
    sum := 0
    for _, ch := range digits {
        sum += int(ch - '0')
    }
    return sum
}

func main() {
    for _, n := range []int64{15, 100, 1000} {
        fmt.Printf("Sum of digits of 2^%d is: %d\n", n, sumOfDigits(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
...