🌚

Project Euler Problem 16 Solved

Posted at — Apr 08, 2014
#golang #python #欧拉工程 #编程

Power digit sum

2^15 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.

What is the sum of the digits of the number 2^1000?

Solution

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/python
# -*- coding: utf-8 -*-

import math

if __name__ == '__main__':
    str = format(math.pow(2, 1000), 'f')
    sum = 0
    for c in str[:str.index('.')]:
        sum += int(c)
    print sum
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
package main

import (
    "fmt"
    "math/big"
    "strconv"
)

func main() {
    num, base := big.NewInt(1), big.NewInt(2)
    for power := 0; power < 1000; power++ {
        num.Mul(num, base)
    }
    result := 0
    for i := 0; i < len(num.String()); i++ {
        bit, _ := strconv.Atoi(num.String()[i : i+1])
        result += bit
    }
    fmt.Println(num.String(), result)
}

I’m the 109044th person to have solved this problem.