아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

원숭이 사업

면접 대비

시간 제한8초메모리 제한512 MB

요약
1번부터 N번까지 원숭이가 차례로 배수 번호의 문을 여닫을 때 마지막에 열린 문 번호를 한 줄에 하나씩 출력하고, 테스트 사이에 빈 줄을 넣습니다.
난이도

보통10점 중 4점

유형
수학, 정수론, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

한 기술자가 자신이 일하는 실험실에서 문을 열고 닫는 훈련을 원숭이들에게 시키고 있다. 실험실 옆에는 긴 복도가 있고, 복도에는 여러 사무실이 있으며 사무실 문은 처음에는 모두 닫혀 있다. 복도의 사무실은 1번부터 N번까지 번호가 매겨져 있고, N은 복도에 있는 사무실의 수이다. 흥미롭게도 실험실에 있는 원숭이의 수는 복도에 있는 문의 수와 정확히 같다.

밤이 되면 기술자는 원숭이를 한 마리씩 우리에서 내보내 운동시킨다. 처음 내보낸 원숭이는 복도를 따라 달리며 모든 문을 연다(즉, 1, 2, 3, 4, ...). 두 번째 원숭이는 복도를 따라 달리며 짝수 번호의 문을 모두 닫는다(즉, 2, 4, 6, 8, ...). 세 번째 원숭이는 복도를 따라 달리며 세 번째 문마다 살펴본다(즉, 3, 6, 9, 12, ...). 원숭이는 살펴본 문이 닫혀 있으면 열고, 열려 있으면 닫는다. 네 번째 원숭이는 네 번째 문마다 살펴보고, 이런 식으로 계속된다. 이 과정은 모든 원숭이가 우리에서 나와 복도를 달릴 때까지 계속된다. 마지막 원숭이는 마지막 문 하나만 살펴본다.

밤이 끝난 뒤 어떤 문이 열려 있는지 알면 좋을 것이다. 예를 들어 문이 다섯 개(원숭이도 다섯 마리)인 복도에서는 모든 원숭이가 우리에서 나온 뒤 1번과 4번 문이 열려 있다. 기술자는 이 일에 자금을 지원받기 위해 연구비 신청서를 쓰기로 했고, 여러분에게 도움을 청했다. 그녀는 복도에 있는 문의 수를 입력으로 받아, 모든 원숭이가 우리에서 나온 뒤 열려 있는 문을 출력하는 프로그램을 작성해 달라고 요청한다. 위에서 말했듯이 원숭이의 수는 문의 수와 같고, 모든 문은 처음에는 닫혀 있다.

입력

입력은 여러 테스트 케이스로 이루어진다. 각 테스트 케이스는 복도에 있는 문의 수를 나타내는 양의 정수 하나로 이루어진다. 입력은 0 하나로 끝난다. 이 0은 입력의 일부가 아니다.

출력

각 테스트 케이스마다 모든 원숭이가 우리에서 나온 뒤 열려 있는 문의 번호를 나열해 출력한다. 목록의 번호는 증가하는 순서로 한 줄에 하나씩 출력한다.

두 테스트 케이스 사이에는 빈 줄을 하나 출력한다.

예제1

  1. 예제 1

    입력
    5
    0
    
    예상 출력
    1
    4