2011/02/02

自然数をn乗して得られるn桁の正整数は何個あるか?

Project Eular Problem63

5桁の数 16807 = 75は自然数を5乗した数である. 同様に9桁の数 134217728 = 89も自然数を9乗した数である.
自然数をn乗して得られるn桁の正整数は何個あるか?
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2063

nは10-Ceiling[10^((n - 1)/n)]>=1
を満たすn=21までカウントすればおk(2項目は増加関数)。


int main (int argc, const char * argv[]) {
   
 double count=0;
 for(double n=1;n<=21;n++){
  
  count=count+ceil(10)-ceil(pow(10,(n-1)/n)); 
  
 }
 
 printf("%f",count);
 
} 


コレの原文(英語)読みながらやったら少しは英語力wがマシになるのかなーと、思いつつ、日本語約を先に読むと英文を読む気にならない。。。。