Problem 20
21 June 2002
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!
C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Numerics; namespace Euler { class Program { static void Main(string[] args) { Console.WriteLine(Enumerable.Range(1, 100) .Select(x => new BigInteger(x)) .Aggregate(BigInteger.Multiply).ToString().Select(x => x - '0').Sum()); Console.ReadKey(); } } }
Racket
(define (char->digit x)
(- (char->integer x)
(char->integer #\0)))
(define (sum-digits x)
(apply + (map char->digit (string->list (number->string x)))))
(define (problem20)
(display (sum-digits (apply * (range 2 100 1)))))
(problem20)
'Project Euler' 카테고리의 다른 글
| Project Euler Problem 22 (0) | 2012.06.03 |
|---|---|
| Project Euler Problem 21 (0) | 2012.06.03 |
| Project Euler Problem 19 (0) | 2012.06.03 |
| Project Euler Problem 18 (0) | 2012.06.03 |
| Project Euler Problem 17 (0) | 2012.06.03 |