021.pez (505B)
1 #! /usr/bin/env pez 2 # real 0m4.047s 3 # user 0m4.040s 4 # sys 0m0.004s 5 6 : d ( n -- sum of proper divisors ) 7 dup 2 <= if 8 drop 1 9 else 10 0 swap 11 dup 1 do 12 i 13 2dup mod 0= if 14 rot + swap 15 else 16 drop 17 then 18 loop 19 drop 20 then 21 ; 22 23 : addIfAmicable ( sum n -- 'sum ) 24 dup d 2dup d = if 25 2dup > if 26 + + 27 else 28 drop drop 29 then 30 else 31 drop drop 32 then 33 ; 34 35 : evaluateSum ( -- sum ) 36 0 37 10000 1 do 38 i addIfAmicable 39 loop 40 ; 41 42 evaluateSum . cr