]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/203/203.factor
factor: trim using lists
[factor.git] / extra / project-euler / 203 / 203.factor
index f2b5a2e212e10ba6791686ab74d4a4dda141b98b..a3e011fee0ee4b634833a627b4ca84a876aa5032 100644 (file)
@@ -1,6 +1,7 @@
 ! Copyright (c) 2008 Eric Mertens.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: fry kernel math math.primes.factors sequences sets ;
+USING: kernel math math.primes.factors math.vectors sequences sets
+project-euler.common ;
 IN: project-euler.203
 
 ! http://projecteuler.net/index.php?section=problems&id=203
@@ -42,10 +43,10 @@ IN: project-euler.203
     swapd '[ @ dup ] replicate nip ; inline
 
 : (generate) ( seq -- seq )
-    [ 0 prefix ] [ 0 suffix ] bi [ + ] 2map ;
+    [ 0 prefix ] [ 0 suffix ] bi v+ ;
 
 : generate ( n -- seq )
-    1- { 1 } [ (generate) ] iterate concat prune ;
+    1 - { 1 } [ (generate) ] iterate union-all ;
 
 : squarefree ( n -- ? )
     factors all-unique? ;
@@ -61,4 +62,4 @@ PRIVATE>
 ! [ euler203 ] 100 ave-time
 ! 12 ms ave run time - 1.6 SD (100 trials)
 
-MAIN: euler203
+SOLUTION: euler203