]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/026/026.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / extra / project-euler / 026 / 026.factor
index 3ad1908aa69a1cd3158d2acc3cc2ceb6e8f5e12f..4f4466c3952a73523430f43b12542f05898f5736 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (c) 2008 Aaron Schaefer.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel math math.functions math.primes math.ranges sequences ;
+USING: kernel math math.functions math.primes math.ranges sequences project-euler.common ;
 IN: project-euler.026
 
 ! http://projecteuler.net/index.php?section=problems&id=26
@@ -34,10 +34,10 @@ IN: project-euler.026
 <PRIVATE
 
 : source-026 ( -- seq )
-    1 1000 (a,b) [ prime? ] subset [ 1 swap / ] map ;
+    1 1000 (a,b) [ prime? ] filter [ 1 swap / ] map ;
 
 : (mult-order) ( n a m -- k )
-    3dup ^ swap mod 1 = [ 2nip ] [ 1+ (mult-order) ] if ;
+    3dup ^ swap mod 1 = [ 2nip ] [ 1 + (mult-order) ] if ;
 
 PRIVATE>
 
@@ -58,7 +58,7 @@ PRIVATE>
 
 : max-period ( seq -- elt n )
     dup [ period-length ] map dup supremum
-    over index [ swap nth ] curry 2apply ;
+    over index [ swap nth ] curry bi@ ;
 
 PRIVATE>
 
@@ -66,6 +66,6 @@ PRIVATE>
     source-026 max-period drop denominator ;
 
 ! [ euler026 ] 100 ave-time
-! 724 ms run / 7 ms GC ave time - 100 trials
+! 290 ms ave run time - 19.2 SD (100 trials)
 
-MAIN: euler026
+SOLUTION: euler026