diff --git a/extra/project-euler/186/186.factor b/extra/project-euler/186/186.factor index 0a6179acee..18d3bf1dd2 100644 --- a/extra/project-euler/186/186.factor +++ b/extra/project-euler/186/186.factor @@ -47,16 +47,14 @@ IN: project-euler.186 : next ( lag -- n ) [ [ first dup ] [ 31 swap nth ] bi + 1000000 rem ] keep circular-push ; -: 2unless? ( x y ?quot quot -- ) - [ 2keep rot [ 2drop ] ] dip if ; inline - -: (p186) ( generator counter unionfind -- counter ) +: (euler186) ( generator counter unionfind -- counter ) 524287 over equiv-set-size 990000 < [ pick [ next ] [ next ] bi - [ = ] [ - pick equate - [ 1 + ] dip - ] 2unless? (p186) + 2dup = [ + 2drop + ] [ + pick equate [ 1 + ] dip + ] if (euler186) ] [ drop nip ] if ; @@ -65,7 +63,7 @@ IN: project-euler.186 [ [ add-atom ] curry each ] keep ; : euler186 ( -- n ) - 0 1000000 (p186) ; + 0 1000000 (euler186) ; ! [ euler186 ] 10 ave-time ! 18572 ms ave run time - 796.87 SD (10 trials)