#include<bits/stdc++.h>

const long long INF = 1e15;

using namespace std;

int main(){
  int S;
  cin >> S;
  
  while(S--){
    int X, Y;
    cin >> X >> Y;
    
    set<int> s;
    for(int i = 1; i * i <= X + Y; i++){
      if((X + Y) % i == 0){
        s.insert(i);
        s.insert((X + Y) / i);
      }
    }
    
    long long ans = 0;
    for(int d : s){
      int A = d - 1;
      if(A == 0) continue;
      
      if(A == 1){
        if(X == Y) ans += 2;
        continue;
      }
      
      int ok = (X + Y) / d, ng = 0;
      while(ok - ng > 1){
        int mid = (ok + ng) >> 1;
        
        if(X <= A * mid + (X + Y) / d - mid) ok = mid;
        else ng = mid;
      }
      
      if(A * ok + (X + Y) / d - ok == X && A * ((X + Y) / d - ok) + ok == Y) ++ans;
    }
    
    cout << ans << endl;
  }
  
  return 0;
}