给你两个四位的素数a,b。
a可以改变某一位上的数字变成c,但只有当c也是四位的素数时才能进行这种改变。
请你计算a最少经过多少次上述变换才能变成b。
例如:1033 -> 8179
1033
1733
3733
3739
3779
8779
8179
最少变换了6次。
Input
第一行输入整数T,表示样例数。 (T <= 100)
每个样例输入两个四位的素数a,b。(没有前导零)
Output
对于每个样例,输出最少变换次数,如果无法变换成b则输出"Impossible"。
Sample Input
3
1033 8179
1373 8017
1033 1033
Sample Output
6
7
0
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<cstring>
using namespace std;
int n1,n2;
int vis[10005];
struct node{
int key;
int time;
};
bool is_prime(int x){
for(int i=2;i<x/2;i++){
if(x%i==0)
return false;
}
return true;
}
void bfs(){
queue<node> q;
struct node one;
one.key =