Pagini recente » Cod sursa (job #1114574) | Cod sursa (job #1188726) | Cod sursa (job #12478) | Cod sursa (job #1587986) | Cod sursa (job #406781)
Cod sursa(job #406781)
#include <cstdio>
#include <fstream>
using namespace std;
#define file_in "ssnd.in"
#define file_out "ssnd.out"
#define Mod 9973
int T;
long long n,N;
int i,inv[1000000],e,d,nrd,suma,p;
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);
ifstream fin (file_in);
ofstream fout (file_out);
//scanf("%d", &T);
fin >> T;
/*for (i=1;i<Mod;++i)
inv[i]=my_pow(i,Mod-2);*/
while(T--)
{
//scanf("%d", &N);
fin >> N;
nrd=suma=1;
n=N;
for (i=2;1LL*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*=((1LL*ee*i-1)%Mod);
suma%=Mod;
suma*=my_pow(i-1,Mod-2);
suma%=Mod;
}
if (n>1)
{
nrd*=2;
suma*=((1LL*n*n-1)%Mod);
suma%=Mod;
suma*=my_pow(n-1,Mod-2);
suma%=Mod;
}
//printf("%d %d\n", nrd,suma);
fout << nrd <<" " << suma<<"\n";
}
//fclose(stdin);
//fclose(stdout);
return 0;
}