#include <bits/stdc++.h>
using namespace std;
int arr[100000];
void seive()
{
arr[0]=1;
arr[1]=1;
int i;
for(i=2;i<sqrt(100000)+1;i++)
{
if(arr[i]==0)
{
for(int j=2*i;j<100000;j=j+i)
{
arr[j]=1;
}
}
}
}
int changekthdigit(int num,int x,int with)
{
int one=num/pow(10,x);
one*=10;
one+=with;
one*=pow(10,x-1);
one=one+(num%(int)pow(10,x-1));
return one;
}
int main()
{
seive();
long long int i;
long long int T;
scanf("%lld",&T);
for(i=0;i<T;i++)
{
int a,b;
scanf("%d %d",&a,&b);
std::queue<pair<int ,int > > myQ;
int temp=a;
pair<int ,int > mu;
mu=make_pair(a,0);
myQ.push(mu);
arr[a]=1;
int level=0;
while(temp!=b)
{
temp=(myQ.front()).first;
level=myQ.front().second;
myQ.pop();
for(int j=0;j<4;j++)
{
for(int k=0;k<10;k++)
{
if(j!=3 || k!=0)
{
int hello=changekthdigit(temp,j+1,k);
if(arr[hello]==0)
{
arr[hello]=1;
myQ.push(make_pair(hello,level+1));
}
}
}
}
}
printf("%d\n",level);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBhcnJbMTAwMDAwXTsKdm9pZCBzZWl2ZSgpCnsKCWFyclswXT0xOwoJYXJyWzFdPTE7CglpbnQgaTsKCWZvcihpPTI7aTxzcXJ0KDEwMDAwMCkrMTtpKyspCgl7CgkJaWYoYXJyW2ldPT0wKQoJCXsKCQkJZm9yKGludCBqPTIqaTtqPDEwMDAwMDtqPWoraSkKCQkJewoJCQkJYXJyW2pdPTE7CgkJCX0KCQl9Cgl9Cgp9CmludCBjaGFuZ2VrdGhkaWdpdChpbnQgbnVtLGludCB4LGludCB3aXRoKQp7CglpbnQgb25lPW51bS9wb3coMTAseCk7CglvbmUqPTEwOwoJb25lKz13aXRoOwoJb25lKj1wb3coMTAseC0xKTsKCW9uZT1vbmUrKG51bSUoaW50KXBvdygxMCx4LTEpKTsKCXJldHVybiBvbmU7Cn0KaW50IG1haW4oKQp7CglzZWl2ZSgpOwoJbG9uZyBsb25nIGludCBpOwoJbG9uZyBsb25nIGludCBUOwoJc2NhbmYoIiVsbGQiLCZUKTsKCWZvcihpPTA7aTxUO2krKykKCXsKCQlpbnQgYSxiOwoJCXNjYW5mKCIlZCAlZCIsJmEsJmIpOwoJCQoJCXN0ZDo6cXVldWU8cGFpcjxpbnQgLGludCA+ID4gbXlROwoJCWludCB0ZW1wPWE7CgkJcGFpcjxpbnQgLGludCA+IG11OwoJCW11PW1ha2VfcGFpcihhLDApOwoJCW15US5wdXNoKG11KTsKCQlhcnJbYV09MTsKCQlpbnQgbGV2ZWw9MDsKCQl3aGlsZSh0ZW1wIT1iKQoJCXsKCQkJdGVtcD0obXlRLmZyb250KCkpLmZpcnN0OwoJCQlsZXZlbD1teVEuZnJvbnQoKS5zZWNvbmQ7CgkJCW15US5wb3AoKTsKCQkJZm9yKGludCBqPTA7ajw0O2orKykKCQkJewoJCQkJZm9yKGludCBrPTA7azwxMDtrKyspCgkJCQl7CgkJCQkJaWYoaiE9MyB8fCBrIT0wKQoJCQkJCQl7CgkJCQkJCQlpbnQgaGVsbG89Y2hhbmdla3RoZGlnaXQodGVtcCxqKzEsayk7CgkJCQkJCQlpZihhcnJbaGVsbG9dPT0wKQoJCQkJCQkJCXsKCQkJCQkJCQkJYXJyW2hlbGxvXT0xOwoJCQkJCQkJCQlteVEucHVzaChtYWtlX3BhaXIoaGVsbG8sbGV2ZWwrMSkpOwoJCQkJCQkJCX0KCQkJCQkJfQoKCQkJCX0KCQkJfQoKCQl9CgkJcHJpbnRmKCIlZFxuIixsZXZlbCk7Cgl9CgoKCXJldHVybiAwOwp9