#include<bits/stdc++.h>
using namespace std ;
using ll = long long ;
const int MAX = 1e6 + 5 ;
bool iscomposite[MAX] ;
void preprocess(){
// Sieve
iscomposite[1] = 1 ;
for(ll i = 2 ; i < MAX ; i++)
for(ll j = i*i ; j < MAX ; j += i)
iscomposite[j] = 1 ;
}
void solve(){
int a, b ; cin >> a >> b ;
int cnt = 0 ;
if(!iscomposite[a]) cnt++ ;
if(!iscomposite[b]) cnt++ ;
for(int i = 0 ; i < 18 ; i++){
int c = a + b ;
if(!iscomposite[c])
cnt++ ;
int temp = c ;
a = b ;
b = c ;
}
cout << cnt << "\n" ;
}
int main(){
ios::sync_with_stdio(0) ; cin.tie(0) ; cout.tie(0) ;
preprocess() ;
int t ; cin >> t ;
while(t--) solve() ;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQgOwp1c2luZyBsbCA9IGxvbmcgbG9uZyA7CmNvbnN0IGludCBNQVggPSAxZTYgKyA1IDsKCmJvb2wgaXNjb21wb3NpdGVbTUFYXSA7Cgp2b2lkIHByZXByb2Nlc3MoKXsKCQoJLy8gU2lldmUKCWlzY29tcG9zaXRlWzFdID0gMSA7Cglmb3IobGwgaSA9IDIgOyBpIDwgTUFYIDsgaSsrKQoJCWZvcihsbCBqID0gaSppIDsgaiA8IE1BWCA7IGogKz0gaSkKCQkJaXNjb21wb3NpdGVbal0gPSAxIDsKCn0KCnZvaWQgc29sdmUoKXsKCQoJaW50IGEsIGIgOyBjaW4gPj4gYSA+PiBiIDsKCQoJaW50IGNudCA9IDAgOwoJaWYoIWlzY29tcG9zaXRlW2FdKSBjbnQrKyA7CglpZighaXNjb21wb3NpdGVbYl0pIGNudCsrIDsKCglmb3IoaW50IGkgPSAwIDsgaSA8IDE4IDsgaSsrKXsKCQlpbnQgYyA9IGEgKyBiIDsKCgkJaWYoIWlzY29tcG9zaXRlW2NdKQoJCQljbnQrKyA7CgoJCWludCB0ZW1wID0gYyA7CgkJYSA9IGIgOwoJCWIgPSBjIDsKCX0KCgljb3V0IDw8IGNudCA8PCAiXG4iIDsKCn0KCmludCBtYWluKCl7CgoKCWlvczo6c3luY193aXRoX3N0ZGlvKDApIDsgY2luLnRpZSgwKSA7IGNvdXQudGllKDApIDsKCglwcmVwcm9jZXNzKCkgOwoJCglpbnQgdCA7IGNpbiA+PiB0IDsKCgl3aGlsZSh0LS0pICBzb2x2ZSgpIDsKCglyZXR1cm4gMCA7Cgp9