Pagini recente » Cod sursa (job #3160048) | Cod sursa (job #10625) | Cod sursa (job #1388197) | Cod sursa (job #2411746) | Cod sursa (job #3272731)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long n;
int t;
bool ci[1000001];
long long prime[400001];
int k;
#define MOD 9973
void ciur()
{ ci[1]=ci[0]=1;
for(int i=2;i*i<=1e6;i++)
if(!ci[i])
for(int j=2;i*j<=1000001;j++) ci[i*j]=1;
for(int i=2;i<=1000001;i++)
if(!ci[i]) prime[++k]=i;
}
int putere(int a, int n)
{ int p=1;
for(int k=1;k<=n;k<<=1)
{ if(n&k) p=p*a%MOD;
a=a*a%MOD;
}
return p;
}
int nrdiv,sum;
void rezolvare(long long n)
{ nrdiv=1;
sum=1;
int d=1;
while(n>1)
{ int put=0;
while(n%prime[d]==0)
{ put++;
n/=prime[d];
}
if(put!=0)
{ nrdiv=nrdiv*(put+1)%MOD;
sum=sum*(putere(prime[d],put+1)-1)%MOD*putere(prime[d]-1,MOD-2)%MOD;
}
d++;
}
if(n!=1)
{ nrdiv=2;
sum=sum*(1+n)%MOD;
}
}
int main()
{ ciur();
f>>t;
while(t--)
{ f>>n;
rezolvare(n);
g<<nrdiv<<" "<<sum<<'\n';
}
return 0;
}