만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

소수의 디지털 근

면접 대비

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

요약
0이 나올 때까지 각 수의 자릿수를 반복해서 더하되 소수가 나오면 멈추고, 원래 수와 소수 디지털 근 또는 none을 출력한다.
난이도

쉬움10점 중 3점

유형
수학, 정수론, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

어떤 수의 디지털 근은 그 수를 이루는 각 자리의 숫자를 모두 더한 값이다. 그 결과가 두 자리 이상이면 한 자리만 남을 때까지 이 과정을 반복한다.

이 문제에서 구해야 하는 것은 디지털 근의 변형인 소수의 디지털 근이다. 위에서 설명한 덧셈 과정은 한 자리만 남으면 멈추지만, 원래 수나 중간에 만들어진 수가 소수이면 그때도 멈춘다. 과정이 계속되어 한 자리에 도달했는데 그 수가 소수가 아니면, 원래 수에는 소수의 디지털 근이 없다.

1보다 큰 정수 중 양의 약수가 1과 자기 자신뿐인 수를 소수라고 한다.

  • 예를 들어 처음 여섯 개의 소수는 2, 3, 5, 7, 11, 13이다.
  • 6의 양의 약수는 6, 3, 2, 1 네 개이므로 6은 소수가 아니다.
  • 주의: 1은 소수가 아니다.

다음은 소수의 디지털 근을 구하는 예이다.

  • 1은 소수가 아니므로 1에는 소수의 디지털 근이 없다.
  • 3은 소수이므로 3의 소수의 디지털 근은 3이다.
  • 4는 소수가 아니므로 4에는 소수의 디지털 근이 없다.
  • 11은 소수이므로 11의 소수의 디지털 근은 11이다.
  • 642는 소수가 아니므로 각 자리의 숫자를 더하면 6 + 4 + 2 = 12이다. 12는 소수가 아니므로 다시 더하면 1 + 2 = 3이다. 3은 소수이므로 642의 소수의 디지털 근은 3이다.
  • 128은 소수가 아니므로 각 자리의 숫자를 더하면 1 + 2 + 8 = 11이다. 11은 소수이므로 128의 소수의 디지털 근은 11이다.
  • 886은 소수가 아니므로 각 자리의 숫자를 더하면 8 + 8 + 6 = 22이다. 22는 소수가 아니므로 다시 더하면 2 + 2 = 4이다. 4는 소수가 아니므로 886에는 소수의 디지털 근이 없다.

입력

입력은 한 줄에 하나씩 0 이상 999999 이하의 정수로 이루어진다. 입력의 끝은 0으로 표시한다.

출력

입력한 수에 소수의 디지털 근이 있으면 입력한 수를 너비 7에 오른쪽 정렬하여 출력한다. 그 뒤에 공백 하나를 출력하고, 계산한 소수의 디지털 근도 너비 7에 오른쪽 정렬하여 출력한다.

입력한 수에 소수의 디지털 근이 없으면 위와 같이 입력한 수를 출력한 뒤 공백 4개와 소문자 none을 출력한다. 끝을 알리는 0은 출력하지 않는다.

예제1

  1. 예제 1

    입력
    1
    3
    4
    11
    642
    128
    886
    0
    
    예상 출력
          1    none
          3       3
          4    none
         11      11
        642       3
        128      11
        886    none