Problema de las puertas

Un hotel dispone de n habitaciones y n camareros. Los camareros tienen la costumbre de cambiar de estado las puertas (es decir, abrir las cerradas y cerrar las abiertas). El proceso es el siguiente:

  • Inicialmente todas las puertas están cerradas.
  • El primer camarero cambia de estado las puertas de todas las habitaciones.
  • El segundo cambia de estado todas las puertas que son múltiplos de 2.
  • El tercero cambia de estado todas las puertas que son múltiplos de 3.
  • El cuarto cambia de estado todas las puertas que son múltiplos de 4.
  • Así, hasta que ha pasado el último camarero.

Defina la función estado-de-las-puertas tal que dado un número entero mayor a 0 que representa las n habitaciones/camareros regrese una secuencia con el estado final de las puertas al llevar a cabo el proceso previamente indicado.

Ejemplos

Para n = 5

Camarero  | Puerta 1 | Puerta 2 | Puerta 3 | Puerta 4 | Puerta 5
----------+----------+----------+----------+----------+---------
 Inicial  | Cerrada  | Cerrada  | Cerrada  | Cerrada  | Cerrada
    1     | Abierta  | Abierta  | Abierta  | Abierta  | Abierta
    2     | Abierta  | Cerrada  | Abierta  | Cerrada  | Abierta
    3     | Abierta  | Cerrada  | Cerrada  | Cerrada  | Abierta
    4     | Abierta  | Cerrada  | Cerrada  | Abierta  | Abierta
    5     | Abierta  | Cerrada  | Cerrada  | Abierta  | Cerrada

Para n = 8

Camarero  | Puerta 1 | Puerta 2 | Puerta 3 | Puerta 4 | Puerta 5 | Puerta 6 | Puerta 7 | Puerta 8
----------+----------+----------+----------+----------+----------+----------+----------+---------
 Inicial  | Cerrada  | Cerrada  | Cerrada  | Cerrada  | Cerrada  | Cerrada  | Cerrada  | Cerrada
    1     | Abierta  | Abierta  | Abierta  | Abierta  | Abierta  | Abierta  | Abierta  | Abierta
    2     | Abierta  | Cerrada  | Abierta  | Cerrada  | Abierta  | Cerrada  | Abierta  | Cerrada
    3     | Abierta  | Cerrada  | Cerrada  | Cerrada  | Abierta  | Abierta  | Abierta  | Cerrada
    4     | Abierta  | Cerrada  | Cerrada  | Abierta  | Abierta  | Abierta  | Abierta  | Abierta
    5     | Abierta  | Cerrada  | Cerrada  | Abierta  | Cerrada  | Abierta  | Abierta  | Abierta
    6     | Abierta  | Cerrada  | Cerrada  | Abierta  | Cerrada  | Cerrada  | Abierta  | Abierta
    7     | Abierta  | Cerrada  | Cerrada  | Abierta  | Cerrada  | Cerrada  | Cerrada  | Abierta
    8     | Abierta  | Cerrada  | Cerrada  | Abierta  | Cerrada  | Cerrada  | Cerrada  | Cerrada

Pruebas

=> (estado-de-las-puertas 5)
(true false false true false)

=> (estado-de-las-puertas 8)
(true false false true false false false false)

=> (estado-de-las-puertas 7)
(true false false true false false false)

=> (estado-de-las-puertas 3)
(true false false)

=> (estado-de-las-puertas 4)
(true false false true)

;; n debe ser mayor a 0
=> (estado-de-las-puertas 0)
()

=> (estado-de-las-puertas -3)
()

;; n debe ser un número entero
=> (estado-de-las-puertas \ñ)
()
=> (estado-de-las-puertas [1 2 3])
()