코딩
백준 1963. 소수 경로 파이썬(PYTHON)
무는빼주세요
2020. 11. 14. 14:51
문제링크 : www.acmicpc.net/problem/1963
1963번: 소수 경로
소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데: “이제 슬슬 비번 바꿀 때도 됐잖아” “응 지금
www.acmicpc.net
import copy
Eratos = [0]*10000
Eratos[0] = 0
Eratos[1] = 1
for i in range(2,100):
if Eratos[i]==0:
temp = i+i
while temp<10000:
Eratos[temp]=1
temp=temp+i
from collections import deque
def solution(start,goal):
queue = deque()
queue.append((start,0))
visitied = list()
visitied.append(start)
while queue:
nownum, count = queue.popleft()
if nownum == goal:
return count
for i in range(4):
for j in range(10):
newnum = list(copy.deepcopy(str(nownum)))
newnum[i]=str(j)
if 999<int(''.join(newnum))<10000:
if Eratos[int(''.join(newnum))] == 0:
if int(''.join(newnum)) not in visitied:
queue.append((int(''.join(newnum)),count+1))
visitied.append(int(''.join(newnum)))
return "Impossible"
def main():
for test_case in range(int(input())):
start, goal = map(int,input().split())
print(solution(start,goal))
main()