```
#include<stdio.h>
//#include<conio.h>
#include<math.h>
int pi=-1,prime[50],count[50];
int primenum(long long a)
{ int i,f=1;
for(i=2;i<=a/2;i++)
{
if(a%i==0)
{f=0;
break;
}
}
return f;
}
void push(long long a)
{ int i,f=0;
for(i=0;i<=pi;i++)
{ if(prime[i]==a)
{count[i]++;
f=1;
break;
}
}
if(f==0)
{prime[++pi]=a;
count[pi]=1;
}
}
int main()
{
long long a,po,k;
int n,t,i,j,f,fl,l,m;
scanf("%d",&t);
for(i=1;i<=t;i++)
{ po=1;
for(m=0;m<50;m++)
{prime[m]=0;
count[m]=0;
} pi=-1;
scanf("%d",&n);
for(j=1;j<=n;j++)
{ k=2;
scanf("%lld",&a);
f=primenum(a);
if(f==1)
push(a);
else
{ for(k=2;k<=sqrt(a)+1;k++)
{
while(a%k==0)
{ fl=primenum(k);
if(fl==1)
{push(k);
a=a/k;
}
else k++;
}
}
}
}
for(l=0;l<=pi;l++)
po=po*(count[l]+1);
printf("%lld",po);
}
// getch();
return 0;
}
```

asked
**16 Oct '14, 00:20**

1★sarique

-1●1●1●9

accept rate:
0%