#include<stdio.h>
#define ll long long
//#include<vector>
int main()
{
int N=1000000;
int p[1000001]={0};
int v[1000001];
p[2]=1;
for(ll int i=3;i<=N;i+=2)
p[i]=1;
v[0]=2;
ll int k=1;
for(ll int i=3;i<=N;i+=2)
{
if(p[i])
{
v[k]=i;
k++;
for(ll int j=i*i;j<=N;j+=2*i)
p[j]=0;
}
}
//for(int i=0;i<v.size();i++)
//cout<<v[i]<<" ";
int t;
scanf("%d",&t);
while(t--)
{
ll int n;
scanf("%lld",&n);
ll int i=0;
ll int p1=v[0];
ll int ans=1,d=0;
while(p1*p1<=n&&i<k)
{
ll int c=0;
while(n%p1==0)
{
n/=p1;
c++;
}
if(c>0)
d++;
ans*=(c+1);
i++;
p1=v[i];
}
if(n!=1)
{
ans*=2;
ans-=1;
}
printf("%lld\n",ans-d);
}
return 0;
}
Language: C