「プロジェクトオイラー問63」の編集履歴(バックアップ)一覧はこちら
「プロジェクトオイラー問63」(2014/02/21 (金) 16:00:08) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2063
*Problem 63 「べき乗の桁の個数」 †
5桁の数 16807 = 7^5は自然数を5乗した数である. 同様に9桁の数 134217728 = 8^9も自然数を9乗した数である.
自然数を n 乗して得られる n 桁の正整数は何個あるか?
10^2は3桁10^3は4桁。
10よりも大きな数は桁数の増加のほうがnの増加より早いので答えは10以下の数のn乗です。
またa^nの桁数がnより小さくなったらそれ以後桁数はnに追いつきません。
よって答えは狭い範囲に定まります。
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2063
*Problem 63 「べき乗の桁の個数」 †
5桁の数 16807 = 7^5は自然数を5乗した数である. 同様に9桁の数 134217728 = 8^9も自然数を9乗した数である.
自然数を n 乗して得られる n 桁の正整数は何個あるか?
10^2は3桁10^3は4桁。
10よりも大きな数は桁数の増加のほうがnの増加より早いので答えは10以下の数のn乗です。
またa^nの桁数がnより小さくなったらそれ以後桁数はnに追いつきません。
よって答えは狭い範囲に定まります。
logを使えば計算は簡単です。
sum([],0):-!.
sum([X|Xs],Result):-sum(Xs,Re),Result is Re+X.
search(B):-
between(1,9,A),
B is floor(1/(1-log10(A))).
main63:-
findall(N,search(N),AnsList),
sum(AnsList,Ans),
write(Ans).