| 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) | |
| $) |