C語言源碼: [cpp] #include<stdio.h> #define maxsize 32000 int a[maxsize],s[maxsize],top; void pri() { int i,j; top=0; for(i=2;i<maxsize;i++) a[i]=0; for(i=2;i<maxsize;i++) { if(a[i]==0) { s[top++]=i; for(j=i;i*j<maxsize;j++) a[i*j]=1; } } } int main() { int n,i,j,num[1010],x,k; pri(); scanf("%d",&n); while(n) { for(i=0;i<n;i++) scanf("%d",&num[i]); for(i=0;i<n;i++) { x=1; for(j=0;j<top;j++) { k=1; while(num[i]%s[j]==0) { k++; num[i]=num[i]/s[j]; } x*=k; if(num[i]==1) break; } if(num[i]!=1) x*=2; printf("%d\n",x); } scanf("%d",&n); } }