#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn 1000005
bool vis[maxn];
int m,primes[maxn];
void init(){
for(
int i=
2;i<maxn;i++
){
if(!
vis[i])
primes[++m]=
i;
for(
int j=
1;j<=m;j++
){
if(primes[j]*i>=maxn)
break;
vis[primes[j]*i]=
1;
if(i%primes[j]==
0)
break;
}
}
}
/*基本算数定理*/
ll calc(ll n){
ll res=
1;
for(
int i=
1;i<=m && primes[i]*primes[i]<=n;i++
)
if(n%primes[i]==
0){
ll cnt=
1;
while(n%primes[i]==
0)
++cnt,n/=
primes[i];
res*=
cnt;
}
if(n>
1)res=res*
2;
return res;
}
int main(){
init();
int t;cin>>
t;
for(
int tt=
1;tt<=t;tt++
){
ll n;
scanf("%lld",&
n);
printf("Case %d: %lld\n",tt,calc(n)-
1);
}
}
转载于:https://www.cnblogs.com/zsben991126/p/11130623.html