fn squareDoor(door: usize) -> Bool {
    var root: usize = 1
    while root * root <= door {
        if root * root == door {
            return true
        }
        root = root + 1
    }
    return false
}

pub fn main(world: World) -> Void raises {
    var doors: [101]Bool = [false; 101]
    var pass: usize = 1
    while pass <= 100 {
        var door: usize = pass
        while door <= 100 {
            doors[door] = !doors[door]
            door = door + pass
        }
        pass = pass + 1
    }
    var valid: Bool = true
    var checkDoor: usize = 1
    while checkDoor <= 100 {
        if doors[checkDoor] != squareDoor(checkDoor) {
            valid = false
        }
        checkDoor = checkDoor + 1
    }
    if valid {
        check world.out.write("100 doors ok\n")
    }
}
