プロジェクトオイラー問56

Problem 56 「もっとべき乗の数字和」 †
a^b(a<100,b<100)な自然数の桁の数字和の最大値を求めよ。
全探索で終了です。

sum(0,Sum,Sum):-!.
sum(Num,Sum,Result):-
	Num1 is Num//10,
	Sum1 is Sum+(Num mod 10),
	sum(Num1,Sum1,Result).

main:-
	findall(E,
		(between(1,99,A),between(1,99,B),C is A^B,sum(C,0,E)),
		Es),
	sort(Es,Es1),
	reverse(Es1,[Ans|_]),
	write(Ans).
最終更新:2014年12月08日 19:21