Problem 20 「階乗の数字和」 †
n × (n - 1) × ... × 3 × 2 × 1 を n! と表す.
例えば, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800 となる.
この数の各桁の合計は 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 である.
この数の各桁の合計は 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 である.
では, 100! の各桁の数字の和を求めよ.
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2020
Prolog言語
fact(0,1):-!.
fact(N,Result):-
!,
N1 is N-1,
fact(N1,Re),
Result is Re*N.
sum([],0):-!.
sum([X|Xs],Result):-
!,
sum(Xs,Re),
Result is Re+X-48.
main20:-
fact(100,F100),
number_codes(F100,List),
sum(List,Ans),
write(Ans).
0 件のコメント:
コメントを投稿