Pagini recente » emagcluj_10_2016 | Cod sursa (job #1206448) | Cod sursa (job #2337659) | Cod sursa (job #821291) | Cod sursa (job #1611414)
#include<cstdio>
char ciur[1000001];
int i,j,m,k,t,v[200001],p=2,up=1000,cate;
long long pow(long long n,long long k)
{
long long p=1;
for(int qq=1;qq<=k;qq++)
p*=n;
return p;
}
long long 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("%lld",&n);
int nr=1;
long long 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);
}
printf("%d %d\n",nr,sum%9973);
}
return 0;
}