Pagini recente » Rating Toma Adrian (aditoma2001) | Cod sursa (job #2263791) | Rating Popoveniuc Cezar (Cezar211) | Monitorul de evaluare | Cod sursa (job #406774)
Cod sursa(job #406774)
#include <cstdio>
#define file_in "ssnd.in"
#define file_out "ssnd.out"
#define Mod 9973
int T,N,i,inv[1000000],e,d,nrd,suma,p,n;
int my_pow(int a,int b)
{
int t;
if (!b)
return 1;
t=my_pow(a,b>>1);
t=(t*t)%Mod;
if (b&1)
t=(t*a)%Mod;
return t;
}
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &T);
for (i=1;i<Mod;++i)
inv[i]=my_pow(i,Mod-2);
while(T--)
{
scanf("%d", &N);
nrd=suma=1;
n=N;
for (i=2;i*i<=N;++i)
{
if (N%i!=0)
continue;
e=0;
int ee=1;
while(n%i==0)
{
n/=i;
e++;
ee*=i;
}
nrd*=(e+1);
suma*=((ee*i-1)%Mod);
suma%=Mod;
suma*=inv[i-1];
suma%=Mod;
}
if (n>1)
{
nrd*=2;
suma*=((n*n-1)%Mod);
suma%=Mod;
suma*=inv[n-1];
suma%=Mod;
}
printf("%d %d\n", nrd,suma);
}
fclose(stdin);
fclose(stdout);
return 0;
}