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

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

자릿수 합 반복 횟수

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

요약
주어진 N, m, 진법 l마다 자릿수 합을 N번 반복해야 l보다 작아지는 가장 작은 양의 정수를 구해 m으로 나눈 나머지를 출력합니다.
난이도

어려움10점 중 8점

유형
정수론, 수학
정답자
아직 제출이 없습니다

문제

양의 정수 aa에 대해, aa를 ll진법으로 적었을 때 각 자리 숫자의 합을 S(a)S(a)라고 하자. 또 Sk(a)≤l−1S^k(a) \leq l-1을 만족하는 가장 작은 kk를 L(a)L(a)라고 하자. 여기서 S0(a)=aS^0(a) = a이고, k≥1k \geq 1에 대해 Sk(a)=S(Sk−1(a))S^k(a) = S(S^{k-1}(a))이다.

NN이 주어지면 L(a)=NL(a) = N인 가장 작은 양의 정수 aa를 구하고, 그 값을 mm으로 나눈 나머지를 출력한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 세 정수 NN, mm, ll이 공백으로 구분되어 한 줄에 주어진다 (0≤N≤1050 \leq N \leq 10^5, 1≤m≤1091 \leq m \leq 10^9, 2≤l≤1092 \leq l \leq 10^9).

마지막 줄에는 0 0 0이 주어진다. 이 줄은 테스트 케이스가 아니다.

출력

각 테스트 케이스마다 Case x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 조건을 만족하는 가장 작은 aa를 mm으로 나눈 나머지이다.

예제3

  1. 예제 1

    입력
    0 1000 10
    1 1000 10
    0 0 0
    
    예상 출력
    Case 1: 1
    Case 2: 10
    
  2. 예제 2

    입력
    2 100 3
    3 100 3
    4 100 3
    0 0 0
    
    예상 출력
    Case 1: 5
    Case 2: 17
    Case 3: 21
    
  3. 예제 3

    입력
    0 1000 2
    1 1000 2
    2 1000 2
    3 1000 2
    4 1000 2
    5 1000 2
    6 1000 2
    0 0 0
    
    예상 출력
    Case 1: 1
    Case 2: 2
    Case 3: 3
    Case 4: 7
    Case 5: 127
    Case 6: 727
    Case 7: 727