import math

# 定义最大数值范围
N = 200100
# 标记数组,用于标记非质数
b = [False] * N
# 存储所有质数
c = []
# 存储每个数的最小质因数
d1 = [0] * N


# 初始化函数,用于预处理质数和质因数
def init():
    # 计算根号N的值,作为筛选质数的上限
    m = int(math.sqrt(N + 2)) + 2
    # 0和1不是质数,标记为True
    b[0] = b[1] = True
    # 使用埃拉托斯特尼筛法标记非质数
    for i in range(2, m):
        if not b[i]:
            for j in range(i * i, N, i):
                b[j] = True
    # 将所有质数添加到列表c中
    for i in range(2, N):
        if not b[i]:
            c.append(i)
    # 遍历所有质数,记录每个数的最小质因数
    for x in c:
        for j in range(x, N, x):
            if d1[j] == 0:
                d1[j] = x


# 查询函数,用于获取一个数n的质因数分解
def query(n):
    v = []
    # 当n大于1时,继续分解质因数
    while n > 1:
        res = d1[n]  # 获取n的最小质因数
        cnt = 0
        # 统计该质因数的个数
        while n % res == 0:
            n //= res
            cnt += 1
        # 将质因数及其个数添加到列表v中
        v.append((res, cnt))
    return v


# 调用初始化函数
init()
# 读取查询次数
t = int(input())
# 对每个查询进行处理
for _ in range(0, t):
    x = int(input())  # 读取查询的数
    v = query(x)  # 获取该数的质因数分解
    ans = 1  # 初始化权值和
    # 如果只有一个质因数,权值和为2倍该质因数的个数
    if len(v) == 1:
        ans = 2 * v[0][1]
    else:
        # 否则,计算所有质因数个数的累乘加1
        for res, cnt in v:
            ans *= cnt + 1
    # 输出结果
    print(ans)