1 ! Copyright (c) 2008 Eric Mertens
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: sequences combinators kernel sequences.lib math assocs namespaces ;
8 : (pick-sheet) ( seq i -- newseq )
20 : pick-sheet ( seq i -- res )
21 2dup swap nth dup zero? [
24 [ (pick-sheet) (euler151) ] dip *
27 : (euler151) ( x -- y )
30 { { 0 0 1 0 } [ { 0 0 0 1 } (euler151) 1+ ] }
31 { { 0 1 0 0 } [ { 0 0 1 1 } (euler151) 1+ ] }
32 { { 1 0 0 0 } [ { 0 1 1 1 } (euler151) 1+ ] }
33 [ [ dup length [ pick-sheet ] with map sum ] [ sum ] bi / ]
39 { 1 1 1 1 } (euler151)