! Copyright (c) 2008 Aaron Schaefer.
! See http://factorcode.org/license.txt for BSD license.
-USING: kernel math math.parser math.ranges project-euler.common sequences
- strings ;
+USING: kernel math ranges project-euler.common sequences ;
IN: project-euler.038
! http://projecteuler.net/index.php?section=problems&id=38
: (concat-product) ( accum n multiplier -- m )
pick length 8 > [
- 2drop 10 digits>integer
+ 2drop digits>number
] [
[ * number>digits append! ] 2keep 1 + (concat-product)
] if ;
PRIVATE>
: euler038 ( -- answer )
- 9123 9876 [a,b] [ concat-product ] map [ pandigital? ] filter supremum ;
+ 9123 9876 [a..b] [ concat-product ] map [ pandigital? ] filter supremum ;
! [ euler038 ] 100 ave-time
! 11 ms ave run time - 1.5 SD (100 trials)