#include <iostream>
#include<cmath>
#include<cstring>
using namespace std;
//int prime[100000];
/*
void judge(int n)
{
    memset(prime,1,sizeof(prime));
    for(int i=2;i<n;i++)
    {
        if(prime[i])
        {
            for(int j=2*i;j<n;j++)
            {
                prime[j]=0;//素数的倍数全不是素数,可以达到接近o(n)的效率
                //如果从1-n,1-根号n去挨个查,需要o(n^1.5)
            }
        }
    }
}
*/
int main() 
{
    int n;
    /*
    judge(100000);
    int b[100000];
    int j=0;
    for(int i=0;i<100000;i++)
    {
        if(prime[i])b[j++]=i;
    }
    int num=j;
    */
    while (cin >> n) 
    { 
        //筛法求素数?
        int *data=(int*)malloc(sizeof(int)*n);
        for(int i=0;i<n;i++)cin>>data[i];
        for(int i=0;i<n;i++)
        {
            int count=0;
            for(int j=1;j<=sqrt(data[i]);j++)
            {
			  //这里采用筛法求素数的思想
                if(data[i]%j==0)
                {   
                    count+=2;
                    if(j*j==data[i])count--;
                }
            }
            cout<<count<<endl;
        }
    }  
}
// 64 位输出请用 printf("%lld")