「プロジェクトオイラー問56」の編集履歴(バックアップ)一覧はこちら
「プロジェクトオイラー問56」(2014/02/20 (木) 01:51:31) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2056
*Problem 56 「もっとべき乗の数字和」 †
Googol (10^100)は非常に大きな数である: 1の後に0が100個続く. 100100は想像を絶する. 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).
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2056
*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).