Pagini recente » Cod sursa (job #243550) | Cod sursa (job #810768) | Cod sursa (job #2486253) | Cod sursa (job #629432) | Cod sursa (job #1637595)
#include <cstdio>
int i,j,k,t,val,nrd,p,ka;
long long n,init,suma,exp,v[100005];
bool a[1000005];
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
a[1]=1;
for (i=1; i*i<=1000000; i++)
if (a[i]==0)
for (j=i; j<=1000000/i; j++)
a[i*j]=1;
for (i=1; i<=1000000; i++)
if (a[i]==0) v[++k]=1ll*i;
scanf("%d",&t);
for (val=1; val<=t; val++)
{
scanf("%lld",&n);
init=n;
i=1;
suma=1;
nrd=1;
while (n!=1 && v[i]*v[i]<=init)
{
p=0;
if (n%v[i]==0)
{
p=0;
while (n%v[i]==0)
{
n=n/v[i];
p++;
}
nrd=nrd*(p+1);
}
exp=1;
for (ka=1; ka<=p+1; ka++) exp=exp*v[i];
suma=suma*((exp-1)/(v[i]-1))%9973;
i++;
}
if (n!=1)
{
nrd=nrd*2;
suma=suma*((n*n-1)/(n-1))%9973;
}
printf("%d %lld\n",nrd,suma);
}
return 0;
}