Problem 46. Which doors are open?
There are n doors in an alley. Initially they are all shut. You have been tasked to go down the alley n times, and open/shut these doors in a particular manner:
- Toggle the state of each door you visit. That is, if the door is shut, open it, and if the door is open, shut it.
- On the i-th trip down the alley, start with door i and visit every i-th door.
Given n doors, return the list of open doors.
Example:
Let's say n = 3.
- On your first trip, you start from the first door and toggle every door. Now all three doors are open.
- On your second trip, you start from the second door and toggle every other door. Since there are only three doors, this means you shut the second door. Now doors 1 and 3 are open.
- On your third trip, you start from the third door and toggle every third door. Now only door 1 is open.
So:
Input n = 3 Output y is 1
Solution Stats
Problem Comments
-
9 Comments
Show
6 older comments
Justin Pinkney
on 28 Jan 2016
Yes I initially thought y = sum(open doors)
Jerivington
on 2 Jun 2016
good problem, easy solution once realising how to solve
Sanzhar Askaruly
on 17 Jun 2019
easy if to think a bit
Solution Comments
Show commentsProblem Recent Solvers3338
Suggested Problems
-
1025 Solvers
-
Project Euler: Problem 1, Multiples of 3 and 5
3377 Solvers
-
Return unique values without sorting
935 Solvers
-
546 Solvers
-
Vectorize the digits of an Integer
325 Solvers
More from this Author96
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!