????????????????????????????????????????????????????????????????????????????????????1?????????????????????????????????????????????????????????????????????????????????TL???????????????????????????????????????
?????????????????????1???????????????????????????
?????????????????????n???n=P1^a1 * P2^a2 * P3^a3 *??????Pn^an???
???????????????n???????????????m?????????ai????????????????????????????????????????????????????????????????????????Pi???????????????????????????pi???????????????ai????????????????????????????????????????????????n??????????????????????????????????????????
???????????????????????????sum=???1+a1???*???1+a2???*???1+a3?????????*???1+an??????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
AC???????????????
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; int pri[1000001]; int tt[1000001]; int s=0; void dabiao() //???????????????????????????????????? { int j; memset(tt,0,sizeof(tt)); tt[1]=1; tt[0]=1; for(int i=2;i<=1000000;i++) { if(tt[i]!=1) { pri[s++]=i; for(j=i+i;j<=1000000;j+=i) tt[j]=1; } } return ; } int main() { int m,i,j,k,t,cas=0; long long n,num,ans; scanf("%d",&t); dabiao(); while(t--) { scanf("%lld",&n); num=1; for(i=0;i<s&&pri[i]*pri[i]<=n;i++) { ans=0; if(n%pri[i]==0) { while(n%pri[i]==0)//???????????????????????????N?????????????????????????????????SUM { ans++; n/=pri[i]; } } num=num*(ans+1); } if(n>1)//????????????????????????????????????????????? num*=2; printf("Case %d: %lld\n",++cas,num-1); } return 0; }