]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/038/038.factor
factor: trim using lists
[factor.git] / extra / project-euler / 038 / 038.factor
old mode 100755 (executable)
new mode 100644 (file)
index 2df993b..dadde96
@@ -1,7 +1,6 @@
 ! 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
@@ -37,9 +36,9 @@ IN: project-euler.038
 
 : (concat-product) ( accum n multiplier -- m )
     pick length 8 > [
-        2drop 10 digits>integer
+        2drop digits>number
     ] [
-        [ * number>digits over push-all ] 2keep 1+ (concat-product)
+        [ * number>digits append! ] 2keep 1 + (concat-product)
     ] if ;
 
 : concat-product ( n -- m )
@@ -48,9 +47,9 @@ IN: project-euler.038
 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)
 
-MAIN: euler038
+SOLUTION: euler038