: over swap dup rot rot ; : rem over over / * - ; 0 1 begin dup 1000 < while dup 3 rem 0 = if dup rot + swap else dup 5 rem 0 = if dup rot + swap else fi fi 1+ repeat drop .