]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/046/046.factor
factor: trim using lists
[factor.git] / extra / project-euler / 046 / 046.factor
index 7f5ad9e0d845d1f2ae1312bc57d25ad71f52f2d9..611a348bf3cf4821d78d1d9fd0065cf6b842c501 100644 (file)
@@ -1,6 +1,7 @@
 ! 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 ranges
+sequences project-euler.common ;
 IN: project-euler.046
 
 ! http://projecteuler.net/index.php?section=problems&id=46
@@ -30,13 +31,13 @@ IN: project-euler.046
 <PRIVATE
 
 : perfect-squares ( n -- seq )
-    2 /i sqrt >integer [1,b] [ sq ] map ;
+    2 /i sqrt >integer [1..b] [ sq ] map ;
 
 : fits-conjecture? ( n -- ? )
-    dup perfect-squares [ 2 * - ] with map [ prime? ] contains? ;
+    dup perfect-squares [ 2 * - ] with map [ prime? ] any? ;
 
 : next-odd-composite ( n -- m )
-    dup odd? [ 2 + ] [ 1+ ] if dup prime? [ next-odd-composite ] when ;
+    dup odd? [ 2 + ] [ 1 + ] if dup prime? [ next-odd-composite ] when ;
 
 : disprove-conjecture ( n -- m )
     dup fits-conjecture? [ next-odd-composite disprove-conjecture ] when ;
@@ -49,4 +50,4 @@ PRIVATE>
 ! [ euler046 ] 100 ave-time
 ! 37 ms ave run time - 3.39 SD (100 trials)
 
-MAIN: euler046
+SOLUTION: euler046