]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/039/039.factor
Harmonize spelling
[factor.git] / extra / project-euler / 039 / 039.factor
index 9075b193241f91e1ddfa78b3bc8fd0bf22899557..90dd8e7bb9d5fc96eb27033d0fa87e45cb61fa03 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (c) 2008 Aaron Schaefer.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: arrays combinators.lib kernel math math.ranges
-    namespaces project-euler.common sequences ;
+USING: arrays kernel math ranges namespaces project-euler.common
+sequences sequences.extras ;
 IN: project-euler.039
 
 ! http://projecteuler.net/index.php?section=problems&id=39
@@ -14,7 +14,7 @@ IN: project-euler.039
 
 !     {20,48,52}, {24,45,51}, {30,40,50}
 
-! For which value of p < 1000, is the number of solutions maximised?
+! For which value of p < 1000, is the number of solutions maximized?
 
 
 ! SOLUTION
@@ -37,14 +37,14 @@ SYMBOL: p-count
     p-count get length ;
 
 : adjust-p-count ( n -- )
-    max-p 1- over <range> p-count get
-    [ [ 1+ ] change-nth ] curry each ;
+    max-p 1 - over <range> p-count get
+    [ [ 1 + ] change-nth ] curry each ;
 
 : (count-perimeters) ( seq -- )
     dup sum max-p < [
         dup sum adjust-p-count
         [ u-transform ] [ a-transform ] [ d-transform ] tri
-        [ (count-perimeters) ] 3apply
+        [ (count-perimeters) ] tri@
     ] [
         drop
     ] if ;
@@ -56,10 +56,10 @@ PRIVATE>
 
 : euler039 ( -- answer )
     [
-        1000 count-perimeters p-count get [ supremum ] keep index
+        1000 count-perimeters p-count get arg-max
     ] with-scope ;
 
 ! [ euler039 ] 100 ave-time
-! 2 ms run / 0 ms GC ave time - 100 trials
+! 1 ms ave run time - 0.37 SD (100 trials)
 
-MAIN: euler039
+SOLUTION: euler039