]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/050/050.factor
factor: trim using lists
[factor.git] / extra / project-euler / 050 / 050.factor
index f8ce68d17396d6056a81afd52903c63cbfd660a2..a86a1966e717193c177a7304870bb02adae1054c 100644 (file)
@@ -1,6 +1,7 @@
 ! Copyright (c) 2008 Aaron Schaefer.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: arrays kernel locals math math.primes sequences ;
+USING: arrays kernel math math.order math.primes
+project-euler.common sequences ;
 IN: project-euler.050
 
 ! http://projecteuler.net/index.php?section=problems&id=50
@@ -62,14 +63,11 @@ IN: project-euler.050
         [ length ] dip 2array
     ] if ;
 
-: longest ( pair pair -- longest )
-    2dup [ first ] bi@ > [ drop ] [ nip ] if ;
-
 : continue? ( pair seq -- ? )
-    [ first ] [ length 1- ] bi* < ;
+    [ first ] [ length 1 - ] bi* < ;
 
 : (find-longest) ( best seq limit -- best )
-    [ longest-prime longest ] 2keep 2over continue? [
+    [ longest-prime max ] 2keep 2over continue? [
         [ rest-slice ] dip (find-longest)
     ] [ 2drop ] if ;
 
@@ -87,4 +85,4 @@ PRIVATE>
 ! [ euler050 ] 100 ave-time
 ! 291 ms run / 20.6 ms GC ave time - 100 trials
 
-MAIN: euler050
+SOLUTION: euler050