## DEV Community is a community of 751,911 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

codeiswine

Posted 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 : syntax_code
https://www.instagram.com/syntax_code/

## Discussion (1)

codeiswine

Any other suggestion my ears are open, let me hear them..........