challenges

my solutions to various "programming challenge" problems
git clone https://wehaveforgeathome.hates.computer/challenges.git
Log | Files | Refs | LICENSE

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