diff --git a/extra/project-euler/056/056.factor b/extra/project-euler/056/056.factor new file mode 100644 index 0000000000..0efe32b254 --- /dev/null +++ b/extra/project-euler/056/056.factor @@ -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 diff --git a/extra/project-euler/project-euler.factor b/extra/project-euler/project-euler.factor index 17ef0d3797..b2d6e7e68a 100644 --- a/extra/project-euler/project-euler.factor +++ b/extra/project-euler/project-euler.factor @@ -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