우박수 구하기 |
---|
입력받은 자연수 n의 우박수와 우박수 사이클을 구하는 프로그램을 작성하시오. 우박수는 다음의 알고리즘을 통해 구할 수 있으며, 우박수 사이클은 알고리즘을 통해 출력되는 우박수의 개수를 의미한다. ‘우박수’는 다음의 알고리즘을 통해 출력되는 값의 크기가 커졌다가 작아지는 현상이 반복되다가 종국에 가서는 1이 되어 종료된다는 의미에서 유래되었다. <알고리즘> 자연수 n을 입력받는다. 자연수 n이 22이면, 우박수는 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 이다. 이때 우박수 사이클은 16이다. |
입력 | |
---|---|
첫째 줄에 1,000,000 미만의 자연수 n이 주어진다. |
출력 | |
---|---|
첫째 줄에 입력받은 자연수의 우박수 사이클을 출력한다. 두 번째 줄에 공백을 사이에 두고 우박수를 출력한다. 우박수의 최대 사이클은 1000 미만이라고 가정한다. |
예시 | |||
---|---|---|---|
1 | 입력 | 22 | |
출력 | 16 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 | ||
2 | 입력 | 19 | |
출력 | 21 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 |