Fix amicable-pair? false positives

db4
Aaron Schaefer 2007-12-25 15:08:37 -05:00
parent f2cf2bc158
commit 2ab01a8f25
2 changed files with 7 additions and 4 deletions

View File

@ -32,13 +32,13 @@ IN: project-euler.021
[ 2dup divisor? [ 2dup / + , ] [ drop ] if ] each drop
] { } make sum 1+ ;
: amicable-pair? ( n m -- ? )
{ [ 2dup = not ] [ 2dup d = ] } && 2nip ;
PRIVATE>
: amicable? ( n -- ? )
dup d { [ 2dup = not ] [ 2dup d = ] } && 2nip ;
: euler021 ( -- answer )
10000 [1,b] [ dup dup d amicable-pair? [ drop 0 ] unless ] sigma ;
10000 [1,b] [ dup amicable? [ drop 0 ] unless ] sigma ;
! [ euler021 ] 100 ave-time
! 328 ms run / 10 ms GC ave time - 100 trials

View File

@ -55,4 +55,7 @@ PRIVATE>
! [ euler067 ] 100 ave-time
! 15 ms run / 0 ms GC ave time - 100 trials
! source-067 [ max-path ] curry 100 ave-time
! 3 ms run / 0 ms GC ave time - 100 trials
MAIN: euler067