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

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

빙글빙글 돌아가는 순환수

시간 제한1초메모리 제한128 MB

요약
주어진 수마다 1부터 자릿수까지의 곱이 모두 그 숫자의 회전인지 판정한다. 앞의 0도 자릿수로 센다.
난이도

보통10점 중 6점

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

문제

순환수(cyclic number) 란 nn 자리 정수 중에서, 11 부터 nn 까지의 모든 정수와 곱했을 때 그 결과가 원래 수의 자릿수들을 회전(rotation)시킨 형태가 되는 수를 말한다. 자릿수들을 원형으로 배열하여 마지막 자리 다음이 첫 자리로 이어진다고 생각하면, 각 곱셈 결과는 원래 수와 똑같은 자릿수들을 똑같은 원형 순서로 사용하며 다만 시작 위치만 다를 수 있다.

예를 들어 142857142857 은 순환수이며, 다음 표가 이를 보여준다:

  • 142857 × 1 = 142857
  • 142857 × 2 = 285714
  • 142857 × 3 = 428571
  • 142857 × 4 = 571428
  • 142857 × 5 = 714285
  • 142857 × 6 = 857142

각 수가 순환수인지 아닌지를 판별하는 프로그램을 작성하라.

입력

입력은 정수들의 목록이며, 한 줄에 하나씩 주어진다. 각 정수는 22 자리부터 6060 자리까지의 길이를 가진다. 앞자리의 0은 의미가 있다. 0은 수의 일부이며 자릿수 nn 을 셀 때 포함된다. 따라서 01 은 두 자리 수로, 한 자리 수인 1 과는 다르다. 입력은 끝까지 읽는다.

출력

각 입력 정수에 대해 한 줄씩 출력한다. 입력에 나타난 그대로(앞자리 0을 포함하여) 수를 먼저 쓰고, 그 수가 순환수이면 is cyclic 을, 아니면 is not cyclic 을 이어서 출력한다.

예제3

  1. 예제 1

    입력
    142857
    142856
    142858
    01
    0588235294117647
    
    예상 출력
    142857 is cyclic
    142856 is not cyclic
    142858 is not cyclic
    01 is not cyclic
    0588235294117647 is cyclic
    
  2. 예제 2

    입력
    142857
    
    예상 출력
    142857 is cyclic
    
  3. 예제 3

    입력
    285714
    
    예상 출력
    285714 is not cyclic