#include <iostream>
#include<math.h>
using namespace std;
long non(long n)
{ long sum=0;
if(n==1)
return 1;
   for(int i=1;i*i<=n;i++)
   {
       

        if(n%i==0&&i*i!=n)
        sum=sum+2;
        if(i*i==n)
        sum=sum+1;
        
        
   }
   return sum;
   
}

int main() {
    long n;
    long ary[1000];
    while (cin >> n) { // 注意 while 处理多个 case
        for(long i=0;i<n;i++)
        {
            cin>>ary[i];
        }
        for(int i=0;i<n;i++)
        {
            cout<<non(ary[i])<<endl;
        }

    }
}
// 64 位输出请用 printf("%lld")

如果x是n的约数,n/x必定也是x的约数,故根号n以前每找到一个约数等于找到两个。x从1开始,直到根号n。如果根号n为整数,则只提供一个约数,大于根号n的约数在前面已经被计算过