K진법

면접 대비

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

요약
각 n을 k진법으로 변환한 뒤 0부터 k-1까지 모든 숫자가 나타나는지 판정하고, 지정된 형식으로 한 줄씩 출력한다.
난이도

쉬움10점 중 3점

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

문제

우리는 수를 나타낼 때 10진 위치 기수법(positional notation)에 익숙하다. 이 표기법은 0부터 9까지 10개의 숫자를 사용한다. 하지만 밑(base)이 반드시 10이어야 할 이유는 없으며, 다른 어떤 밑으로도 똑같이 수를 나타낼 수 있다. 예를 들어 2진법에서는 0과 1 두 개의 숫자만 사용하고, 16진법에서는 00-99와 a,b,c,d,e,fa, b, c, d, e, f (각각 10, 11, 12, 13, 14, 15를 나타냄)를 사용한다. 두 표기법 모두 컴퓨터에서 흔히 쓰인다.

일반적으로 kk진법 표기는 00부터 k−1k - 1까지 kk개의 숫자를 사용한다. 수 nn이 kk진법으로 a3a2a1a0a_3a_2a_1a_0이라고 적혀 있으면 그 값은 다음과 같다.

n=(a3a2a1a0)k=a3×k3+a2×k2+a1×k1+a0×k0n = (a_3a_2a_1a_0)_k = a_3 \times k^3 + a_2 \times k^2 + a_1 \times k^1 + a_0 \times k^0

여기서 아래 첨자 kk는 그 수가 kk진법으로 적혔음을 나타낸다. 예를 들어,

  • 4657=4×72+6×71+5×70=24310465_7 = 4 \times 7^2 + 6 \times 7^1 + 5 \times 7^0 = 243_{10}
  • 46e16=4×162+6×161+14×160=11341046e_{16} = 4 \times 16^2 + 6 \times 16^1 + 14 \times 16^0 = 1134_{10} (여기서 ee는 16진법에서 14를 나타낸다)

두 정수 nn과 kk가 주어질 때, nn의 kk진법 표기가 00부터 k−1k - 1까지의 모든 숫자를 포함하는지 판별하라.

예를 들어 15의 3진법 표기는 1203120_3이고 (1×32+2×31+0×30=151 \times 3^2 + 2 \times 3^1 + 0 \times 3^0 = 15), 이는 0, 1, 2 세 숫자를 모두 포함한다. 반면 18의 4진법 표기는 1024102_4이며 (1×42+0×41+2×40=181 \times 4^2 + 0 \times 4^1 + 2 \times 4^0 = 18), 0, 1, 2만 포함하고 3이 빠져 있으므로 모든 숫자를 포함하지는 않는다.

kk진법 표기는 앞에 불필요한 0을 붙이지 않는 표준 표기(선행 0 없음)를 사용한다. 따라서 숫자 0은 수의 중간 어딘가에 실제로 나타나야 한다. 예를 들어 10진법의 123456789는 1부터 9까지만 포함하고 0을 포함하지 않으므로 (0123456789처럼 앞에 0을 덧붙여 적지는 않기 때문에) 모든 숫자를 포함하지 않는다.

값이 10 이상인 숫자는 소문자 알파벳으로 표기한다. 즉 10=a10 = a, 11=b11 = b, …\ldots, 29=t29 = t이다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다 (T<100T < 100). 다음 TT개의 줄에는 각 테스트 케이스가 한 줄씩 주어지며, 각 줄에는 두 정수 nn과 kk가 이 순서대로 공백으로 구분되어 주어진다. 2≤k≤302 \le k \le 30이고 0≤n<2300 \le n < 2^{30}이다.

출력

각 테스트 케이스마다 결과를 한 줄씩 출력한다. nn의 kk진법 표기를 rr이라고 할 때, 그 표기가 00부터 k−1k - 1까지의 모든 숫자를 포함하면

Base-<k> representation of <n> is <r>; contains all digits.

를 출력하고, 그렇지 않으면

Base-<k> representation of <n> is <r>; does not contain all digits.

를 출력한다. 여기서 <k>, <n>, <r>은 각각 실제 값으로 바꾼다.

예제1

  1. 예제 1

    입력
    6
    100 10
    343 7
    240 5
    1234567890 10
    1 2
    2 2
    
    예상 출력
    Base-10 representation of 100 is 100; does not contain all digits.
    Base-7 representation of 343 is 1000; does not contain all digits.
    Base-5 representation of 240 is 1430; does not contain all digits.
    Base-10 representation of 1234567890 is 1234567890; contains all digits.
    Base-2 representation of 1 is 1; does not contain all digits.
    Base-2 representation of 2 is 10; contains all digits.