九度教程第56题

2014-11-24 08:09:11 · 作者: · 浏览: 0
C语言 源码
[cpp]
#include
#define maxsize 32000
int a[maxsize],s[maxsize],top;
void pri()
{
int i,j;
top=0;
for(i=2;i
a[i]=0;
for(i=2;i
{
if(a[i]==0)
{
s[top++]=i;
for(j=i;i*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
scanf("%d",&num[i]);
for(i=0;i
{
x=1;
for(j=0;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);
}
}