]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/035/035.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / extra / project-euler / 035 / 035.factor
index c362e1e1a59cd393127b3fca9336e02b8aed6d27..7d98de62b1bb26a7825e75ff71a91d79cae19f29 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (c) 2008 Aaron Schaefer.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel math math.combinatorics math.parser math.primes
-    project-euler.common sequences sequences.lib sets ;
+    project-euler.common sequences sets ;
 IN: project-euler.035
 
 ! http://projecteuler.net/index.php?section=problems&id=35
@@ -28,7 +28,7 @@ IN: project-euler.035
 
 : possible? ( seq -- ? )
     dup length 1 > [
-        dup { 0 2 4 5 6 8 } swap diff =
+        dup { 0 2 4 5 6 8 } diff =
     ] [
         drop t
     ] if ;
@@ -39,23 +39,23 @@ IN: project-euler.035
 : (circular?) ( seq n -- ? )
     dup 0 > [
         2dup rotate 10 digits>integer
-        prime? [ 1- (circular?) ] [ 2drop f ] if
+        prime? [ 1 - (circular?) ] [ 2drop f ] if
     ] [
         2drop t
     ] if ;
 
 : circular? ( seq -- ? )
-    dup length 1- (circular?) ;
+    dup length 1 - (circular?) ;
 
 PRIVATE>
 
 : euler035 ( -- answer )
-    source-035 [ possible? ] subset [ circular? ] count ;
+    source-035 [ possible? ] filter [ circular? ] count ;
 
 ! [ euler035 ] 100 ave-time
-! 904 ms run / 86 ms GC ave time - 100 trials
+! 538 ms ave run time - 17.16 SD (100 trials)
 
 ! TODO: try using bit arrays or other methods outlined here:
 !     http://home.comcast.net/~babdulbaki/Circular_Primes.html
 
-MAIN: euler035
+SOLUTION: euler035