--- /dev/null
+! Copyright (c) 2009 Aaron Schaefer.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel math math.functions math.ranges project-euler.common sequences ;
+IN: project-euler.063
+
+! http://projecteuler.net/index.php?section=problems&id=63
+
+! DESCRIPTION
+! -----------
+
+! The 5-digit number, 16807 = 7^5, is also a fifth power. Similarly, the
+! 9-digit number, 134217728 = 8^9, is a ninth power.
+
+! How many n-digit positive integers exist which are also an nth power?
+
+
+! SOLUTION
+! --------
+
+! Only have to check from 1 to 9 because 10^n already has too many digits.
+! In general, x^n has n digits when:
+
+! 10^(n-1) <= x^n < 10^n
+
+! ...take the left side of that equation, solve for n to see where they meet:
+
+! n = log(10) / [ log(10) - log(x) ]
+
+! Round down since we already know that particular value of n is no good.
+
+: euler063 ( -- answer )
+ 9 [1,b] [ log [ 10 log dup ] dip - /i ] sigma ;
+
+! [ euler063 ] 100 ave-time
+! 0 ms ave run time - 0.0 SD (100 trials)
+
+SOLUTION: euler063
project-euler.045 project-euler.046 project-euler.047 project-euler.048
project-euler.049 project-euler.052 project-euler.053 project-euler.054
project-euler.055 project-euler.056 project-euler.057 project-euler.058
- project-euler.059 project-euler.067 project-euler.071 project-euler.073
- project-euler.075 project-euler.076 project-euler.079 project-euler.092
- project-euler.097 project-euler.099 project-euler.100 project-euler.116
- project-euler.117 project-euler.134 project-euler.148 project-euler.150
- project-euler.151 project-euler.164 project-euler.169 project-euler.173
- project-euler.175 project-euler.186 project-euler.190 project-euler.203
- project-euler.215 ;
+ project-euler.059 project-euler.063 project-euler.067 project-euler.071
+ project-euler.073 project-euler.075 project-euler.076 project-euler.079
+ project-euler.092 project-euler.097 project-euler.099 project-euler.100
+ project-euler.116 project-euler.117 project-euler.134 project-euler.148
+ project-euler.150 project-euler.151 project-euler.164 project-euler.169
+ project-euler.173 project-euler.175 project-euler.186 project-euler.190
+ project-euler.203 project-euler.215 ;
IN: project-euler
<PRIVATE