Pagini recente » Cod sursa (job #820092) | Cod sursa (job #2110929) | Cod sursa (job #2276327) | Cod sursa (job #2517917) | Cod sursa (job #1611403)
#include<cstdio>
char ciur[1000001];
int i,j,m,k,t,v[200001],p=2,up=1000,cate;
int pow(int n,int k)
{
int p=1;
for(int qq=1;qq<=k;qq++)
p*=n;
return p;
}
int n;
int main ()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
while(p<=up)
{
for(i=2;i*p<=1000000;i++)
ciur[i*p]=1;
p++;
while(ciur[p]==1)
p++;
}
for(i=2;i<=1000000;i++)
if(ciur[i]==0)
v[++cate]=i;
scanf("%d",&t);
for(j=1;j<=t;j++)
{
scanf("%d",&n);
int nr=1;
int sum=1;
for(i=1;i<=cate;i++)
{
int nr1=0;
while(n%v[i]==0)
{
nr1++;
n/=v[i];
}
nr=nr*(nr1+1);
if(nr1!=0)
{
sum=sum*(pow(v[i],nr1+1)-1)/(v[i]-1);
sum%=9973;
}
}
printf("%d %d\n",nr,sum);
}
return 0;
}