Solution to Project Euler problem 56

db4
Aaron Schaefer 2008-02-08 21:17:45 -05:00
parent 751b013e2b
commit 3ccc624dd4
2 changed files with 34 additions and 2 deletions

View File

@ -0,0 +1,31 @@
! Copyright (c) 2008 Aaron Schaefer.
! See http://factorcode.org/license.txt for BSD license.
USING: kernel math.functions math.ranges project-euler.common sequences ;
IN: project-euler.056
! http://projecteuler.net/index.php?section=problems&id=56
! DESCRIPTION
! -----------
! A googol (10^100) is a massive number: one followed by one-hundred zeros;
! 100^100 is almost unimaginably large: one followed by two-hundred zeros.
! Despite their size, the sum of the digits in each number is only 1.
! Considering natural numbers of the form, a^b, where a, b < 100, what is the
! maximum digital sum?
! SOLUTION
! --------
! Through analysis, you only need to check when a and b > 90
: euler056 ( -- answer )
90 100 [a,b) dup cartesian-product
[ first2 ^ number>digits sum ] map supremum ;
! [ euler056 ] 100 ave-time
! 33 ms run / 1 ms GC ave time - 100 trials
MAIN: euler056

View File

@ -14,8 +14,9 @@ USING: definitions io io.files kernel math math.parser project-euler.ave-time
project-euler.037 project-euler.038 project-euler.039 project-euler.040
project-euler.041 project-euler.042 project-euler.043 project-euler.044
project-euler.045 project-euler.048 project-euler.052 project-euler.053
project-euler.067 project-euler.075 project-euler.079 project-euler.097
project-euler.134 project-euler.169 project-euler.173 project-euler.175 ;
project-euler.056 project-euler.067 project-euler.075 project-euler.079
project-euler.097 project-euler.134 project-euler.169 project-euler.173
project-euler.175 ;
IN: project-euler
<PRIVATE