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).

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2014年02月21日 16:00