1 #include<stdio.h> 2 #include<math.h> 3 int vis[100005],prime[100005]; 4 int main() 5 { 6 int cnt,dd,i,j,t,T,n,ans,temp; 7 cnt=0; dd=int(1.0*sqrt(1000000000.0)+1); 8 for (i=1;i<=dd;i++) vis[i]=0; 9 for (i=2;i<=dd;i++) 10 if (vis[i]==0) 11 { 12 cnt++; 13 prime[cnt]=i; 14 for (j=i*i;j<=dd;j+=i) vis[j]=1; 15 } 16 // for (i=1;i<=10;i++) printf("%d ",prime[i]); 17 scanf("%d",&T); 18 for (t=1;t<=T;t++) 19 { 20 scanf("%d",&n); 21 ans=1; 22 for (i=1;i<=cnt;i++) 23 { 24 if (prime[i]>n) break; 25 temp=0; 26 while (n%prime[i]==0) {temp++; n/=prime[i]; } 27 temp=temp*2+1; 28 ans*=temp; 29 } 30 if (n>1) ans*=3; 31 printf("Scenario #%d:\n",t); 32 printf("%d\n\n",(ans+1)/2); 33 } 34 }
转载于:https://www.cnblogs.com/xiao-xin/articles/3848623.html