get "libhdr" let start() be $( let doors = vec 100 // close all doors for n = 1 to 100 do doors!n := 0 // make 100 passes for pass = 1 to 100 do $( let n = pass while n <= 100 do $( doors!n := ~doors!n n := n + pass $) $) // report which doors are open for n = 1 to 100 do if doors!n then writef("Door %N is open.*N", n) $)