#include <bits/stdc++.h>
using namespace std;

#define int long long
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

int yta();

signed main(){
	int s;
	scanf("%lld", &s);
	while(s--) yta();

	return 0;
}

int x, y;
inline int valid(int a){
	if(a == 0) return 0;
	int sita = a*a-1;
	int ue = a*x-y;
	if(sita == 0 || ue <= 0 || ue%sita != 0) return 0;
	int b = ue/sita; 
	if(x-a*b <= 0) return 0;
	return 1;
}

int yta(){
	scanf("%lld %lld", &x, &y);

	int ans = 0;
	for(int i = 1;i*i <= abs(x-y);i++){
		if(abs(x-y)%i == 0){
			ans += valid(i+1);
			if(i*i < x+y) ans += valid(abs(x-y)/i+1);
		}
	}
	printf("%lld\n", ans);
	return 0;
}