※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Problem 56 「もっとべき乗の数字和」 †

Googol (10^100)は非常に大きな数である: 1の後に0が100個続く. 100^100は想像を絶する. 1の後に0が200回続く. その大きさにも関わらず, 両者とも桁の和は1である.

a, b < 100 について自然数 ab を考える. 桁の和の最大値を答えよ.



解法
書くだけ問題でなんか面白くないです。
賢い方法あるのでしょうか?

keta_sum(0,0):-!.
keta_sum(N,Result):-
	N1 is N//10,
	X is N mod 10,
 	keta_sum(N1,Re),
	Result is Re+X.

search(Sum):-
	between(1,99,A),
	between(1,99,B),
	C is A^B,
	keta_sum(C,Sum).
 
main56:-
	findall(Sum,search(Sum),Sums),
	sort(Sums,Sums1),
	write(Sums1).