diff --git a/extra/project-euler/023/023.factor b/extra/project-euler/023/023.factor index 7c28ebf..16d1f63 100644 --- a/extra/project-euler/023/023.factor +++ b/extra/project-euler/023/023.factor @@ -1,6 +1,7 @@ ! Copyright (c) 2008 Aaron Schaefer. ! See http://factorcode.org/license.txt for BSD license. -USING: kernel math math.ranges project-euler.common sequences sets sorting ; +USING: assocs fry kernel math math.ranges project-euler.common sequences +sets sorting ; IN: project-euler.023 ! http://projecteuler.net/index.php?section=problems&id=23 @@ -42,10 +43,8 @@ IN: project-euler.023 [1,b] [ abundant? ] filter ; : possible-sums ( seq -- seq ) - dup { } -rot [ - dupd [ + ] curry map - rot append prune swap rest - ] each drop natural-sort ; + dup H{ } clone + [ '[ [ + _ conjoin ] with each ] curry each ] keep keys ;