#include<iostream>
#include<math.h>
#include<vector>
using namespace std;
//两种选其一
const int MAXN=35000;
//const int MAXN=sqrt(1e9)+1;
bool isPrime[MAXN];
vector<int> prime;
void Init()
{
for(int i=0; i<MAXN; i++)
{
isPrime[i]=true;
}
isPrime[0]=false;
isPrime[1]=false;
for(int i=2; i<MAXN; i++)
{
if(!isPrime[i])continue;
prime.push_back(i);
for(int j=i*i; j<MAXN; j+=i)
{
isPrime[i]=false;
}
}
}
int Numberoffactor(int num)
{
vector<int> exponent;
for(int i=0; i<prime.size(); i++) {
int factor=prime[i];
if(num<factor)
{
break;
}
int current =0;
while(num%factor==0)
{
num/=factor;
current++;
}
exponent.push_back(current);
}
if(num>1)
{
exponent.push_back(1);
}
int answer=1;
for(int i =0;i<exponent.size();++i)
{
answer*=exponent[i]+1;
}
return answer;
}
int main() {
Init();
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==0){
break;
}
for (int i=0;i<n;++i){
int number;
scanf("%d",&number);
printf("%d\n",Numberoffactor(number));
}
}
return 0;
}