#include using namespace std; int main() { int S; scanf(" %d ", &S); while (S--) { long long X, Y; scanf(" %lld %lld ", &X, &Y); if (X < Y) swap(X, Y); long long ans = 0; if (X == Y) { if ((X + Y) % 2 == 0) { ans += (X + Y) / 2 - 1; for (long long x = 2; x * x <= (X + Y) / 2; x++) { if ((X + Y) % (x * 2)) continue; long long y = (X + Y) / (x * 2); if (x > 2 && y > 0) { ++ans; } if (x != y && y > 2 && x > 0) { ++ans; } } } } else { for (long long x = 2; x * x <= X + Y; x++) { if ((X + Y) % x) continue; long long y = (X + Y) / x; if (x > 2 && (X - Y) % (x - 2) == 0) { long long b = (X + Y) / x, c = (X - Y) / (x - 2); if (b > c && b % 2 == c % 2) ++ans; } if (x != y && y > 2 && (X - Y) % (y - 2) == 0) { long long b = (X + Y) / y, c = (X - Y) / (y - 2); if (b > c && b % 2 == c % 2) ++ans; } } } printf("%lld\n", ans); } return 0; }