Factorial digit sum
n! means n × (n − 1) × … × 3 × 2 × 1
For example, 10! = 10 × 9 × … × 3 × 2 × 1 = 3628800,
and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
Find the sum of the digits in the number 100!
Solution
1
2
3
4
5
6
7
8
| #!/usr/bin/python
# -*- coding: utf-8 -*-
if __name__ == '__main__':
product = 1
for i in range(2, 101):
product *= i
print sum([int(x) for x in str(product)])
|
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() {
product := big.NewInt(1)
for i := 1; i < 101; i++ {
product.Mul(product, big.NewInt(int64(i)))
}
sum := 0
for idx := range product.String() {
tmp, _ := strconv.Atoi(product.String()[idx : idx+1])
sum += tmp
}
fmt.Println(sum)
}
|
I’m the 100089th person to have solved this problem.