diff --git a/extra/project-euler/073/073.factor b/extra/project-euler/073/073.factor index c7e8805722..8ab0b17190 100644 --- a/extra/project-euler/073/073.factor +++ b/extra/project-euler/073/073.factor @@ -1,6 +1,6 @@ ! Copyright (c) 2008 Aaron Schaefer. ! See http://factorcode.org/license.txt for BSD license. -USING: kernel locals make math project-euler.common sequences ; +USING: kernel locals math project-euler.common sequences ; IN: project-euler.073 ! http://projecteuler.net/index.php?section=problems&id=73 @@ -32,19 +32,19 @@ IN: project-euler.073 : euler073 ( -- answer ) - [ 10000 1/3 1/2 (euler073) ] { } make length ; + 0 10000 1/3 1/2 (euler073) ; ! [ euler073 ] 10 ave-time ! 20506 ms ave run time - 937.07 SD (10 trials) diff --git a/extra/project-euler/085/085.factor b/extra/project-euler/085/085.factor index bd09203da5..6c70f65bf7 100644 --- a/extra/project-euler/085/085.factor +++ b/extra/project-euler/085/085.factor @@ -1,6 +1,7 @@ ! Copyright (c) 2009 Guillaume Nargeot. ! See http://factorcode.org/license.txt for BSD license. -USING: arrays kernel math math.ranges project-euler.common sequences ; +USING: accessors kernel math math.ranges project-euler.common +sequences locals ; IN: project-euler.085 ! http://projecteuler.net/index.php?section=problems&id=85 @@ -23,28 +24,31 @@ IN: project-euler.085 result -: convert ( seq -- seq ) - array2 [ * ] [ rectangles-count distance ] 2bi 2array ; +: min-by-distance ( seq seq -- seq ) + [ [ distance>> ] bi@ < ] most ; inline + +: compute-result ( i j -- pair ) + [ * ] [ rectangles-count distance ] 2bi ; inline : area-of-nearest ( -- n ) - 1 2000 unique-products - [ convert ] [ max-by-last ] map-reduce first ; + T{ result f 0 2000000 } 1 2000 + [ compute-result min-by-distance ] each-unique-product area>> ; PRIVATE>