테스트 케이스 중 1035를 예로 들면
N의 배수는 즉 2이상인 것을 암묵적으로 알 수 있다. 1일 경우 자기 자신이 나오기 때문에 의미없다.
그래서 2부터 시작하면 1035 x 2 = 2070 이 되고
2070 인덱스 별 원소를 1035에서 찾는 것이다. 즉
i = 0번째 일 때 2이고 2는 1035안에 없다. 따라서 해당 케이스는 불가능이다.
k = 3일 때 1035 x 3 = 3015이다.
i = 0일 때 3이고 1035안에 있다. 1035 => 105가 된다.
i = 1일 때 0이고 105안에 있다. 105 => 15가 된다.
i = 2일 때 1이고 15안에 있다. 15 => 5가 된다.
i = 3일 때 5이고 5안에 있다. 5 => ""가 된다.
이것은 possible하다.
이렇게 자리수가 변할 때 까지 찾고 자리수가 변할 때 까지 possible이 나오지 않으면 impossible이다.
for test_case in range(1, T + 1):
n = int(input())
s = list(str(n))
max_num = 10 ** len(s)
k = 2
while True:
if n*k >= max_num:
print("#" + str(test_case) + " " + "impossible")
break
tmp = s.copy()
arr = list(str(n*k))
cnt = 0
flg = False
while tmp:
target = arr[cnt]
for i in range(len(tmp)):
if target == tmp[i]:
tmp.pop(i)
break
if i == len(tmp) - 1:
flg = True
break
if flg:
break
cnt += 1
if not flg:
print("#" + str(test_case) + " " + "possible")
break
k += 1