## DEV Community

codeiswine

Posted on • Updated on

# 100 Doors

The name's strange but don't fret over it's as easy as making a for loop.

## Problem statement :

100 doors in a row are all initially closed.
You make 100 passes by the doors.
The first time through, visit every door and toggle the door (if the door is closed, open it; if it is open, close it).
The second time, only visit every 2nd door (door #2, #4, #6, ...), and toggle it.
The third time, visit every 3rd door (door #3, #6, #9, ...), etc, until you only visit the 100th door.
And so on it goes up to the 100th time.

## First solution

Language: Python

``````doors = [0] * 100       #initialized all doors to a closed state
for x in range(100):
for y in range(x, 100, x + 1):
if (doors[y] == 0):
doors[y] = 1
else :
doors[y] = 0
``````

Well, the amazing thing that caught my eye was that even after a 100 iterations of closing and opening doors the doors which were left open were the perfect squares. (why don't U try it and see the magic for your self)

## Second solution

Language: Python

``````doors = [0] * 100
for x in range(10):
doors[x * x - 1] = 1
``````

Well, this one's a little funny as I know that all the perfect squares doors are open. I only iterated once and simply opened only those that are perfect squares. (As easy as that.)

For more follow me on Instagram :
id : codeiswine
https://www.instagram.com/codeiswine/