3의 배수
면접 대비시간 제한2초메모리 제한128 MB
최대 백만 자리 큰 수의 각 자릿수를 반복적으로 더해 한 자리가 될 때까지의 변환 횟수를 구하고 3의 배수 여부를 판별합니다.
문제
큰 자연수 X가 주어진다. X에 대해 다음 변환을 생각하자.
- 현재 수의 각 자리 숫자를 모두 더한다.
- 그 합을 새로운 수로 삼는다.
- 새로운 수가 한 자리 수가 될 때까지 같은 변환을 반복한다.
한 자리 수가 된 값이 3, 6, 9 중 하나이면 처음 주어진 수 X는 3의 배수이고, 1, 2, 4, 5, 7, 8 중 하나이면 3의 배수가 아니다.
X가 주어졌을 때, 한 자리 수가 될 때까지 변환을 몇 번 해야 하는지와 X가 3의 배수인지 여부를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 큰 자연수 X가 주어진다. X는 1,000,000자리 이하이며, 0으로 시작하지 않는다.
출력
첫째 줄에 변환을 수행한 횟수를 출력한다. 이 값은 음이 아닌 정수이다.
둘째 줄에는 주어진 수가 3의 배수이면 YES, 아니면 NO를 출력한다.
힌트
1234567은 1234567 -> 28 -> 10 -> 1 순서로 변환되므로, 변환 횟수는 3이고 3의 배수가 아니다.