import sys
import heapq
from math import gcd, isqrt
import bisect
from collections import deque, defaultdict, Counter
from itertools import permutations, combinations, accumulate
input = lambda: sys.stdin.readline().strip()
def I():
return input()
def II():
return int(input())
def MII():
return map(int, input().split())
def LI():
return input().split()
outs = []
def count(n):
ret = 0
for i in range(1, isqrt(n)+1):
if n % i == 0:
ret += 1
if i != n // i:
ret += 1
return ret
for _ in range(II()):
n, m = MII()
num = gcd(n, m)
outs.append(count(num))
print(*outs, sep='\n')
aW1wb3J0IHN5cwppbXBvcnQgaGVhcHEKZnJvbSBtYXRoIGltcG9ydCBnY2QsIGlzcXJ0CmltcG9ydCBiaXNlY3QKZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUsIGRlZmF1bHRkaWN0LCBDb3VudGVyCmZyb20gaXRlcnRvb2xzIGltcG9ydCBwZXJtdXRhdGlvbnMsIGNvbWJpbmF0aW9ucywgYWNjdW11bGF0ZQoKaW5wdXQgPSBsYW1iZGE6IHN5cy5zdGRpbi5yZWFkbGluZSgpLnN0cmlwKCkKCmRlZiBJKCk6CiAgICByZXR1cm4gaW5wdXQoKQoKZGVmIElJKCk6CiAgICByZXR1cm4gaW50KGlucHV0KCkpCgpkZWYgTUlJKCk6CiAgICByZXR1cm4gbWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKQoKZGVmIExJKCk6CiAgICByZXR1cm4gaW5wdXQoKS5zcGxpdCgpCgpvdXRzID0gW10KCmRlZiBjb3VudChuKToKICAgIHJldCA9IDAKICAgIGZvciBpIGluIHJhbmdlKDEsIGlzcXJ0KG4pKzEpOgogICAgICAgIGlmIG4gJSBpID09IDA6CiAgICAgICAgICAgIHJldCArPSAxCiAgICAgICAgICAgIGlmIGkgIT0gbiAvLyBpOgogICAgICAgICAgICAgICAgcmV0ICs9IDEKICAgIHJldHVybiByZXQKCmZvciBfIGluIHJhbmdlKElJKCkpOgogICAgbiwgbSA9IE1JSSgpCgogICAgbnVtID0gZ2NkKG4sIG0pCgogICAgb3V0cy5hcHBlbmQoY291bnQobnVtKSkKCnByaW50KCpvdXRzLCBzZXA9J1xuJyk=