Pagini recente » Cod sursa (job #198589) | Cod sursa (job #3257159) | Cod sursa (job #1286853) | Cod sursa (job #2335616) | Cod sursa (job #1337788)
#include <fstream>
#define mod 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long x;
int t, i, k, nr, aux, nrd, sd, v[1000010], p1, p2;
bool viz[1000010];
int putere(int x, int y){
int aux=1;
x%=mod;
for(;y;y>>=1)
{
if(y&1)
aux=(aux*x)%mod;
x*=x;
x%=mod;
}
return aux;
}
void ciur(){
long long i, j;
viz[0]=1;
viz[1]=1;
v[1]=2;
k=1;
for(i=3; i<1000001; i+=2)
if(viz[i]==0)
{
v[++k]=i;
for(j=i+i; j<1000001; j+=i)
viz[j]=1;
}
}
int main(){
ciur();
f>>t;
for(;t;t--)
{
f>>x;
i=1;
nrd=1;
sd=1;
while(x>1 && 1LL*v[i]*v[i]<=x)
{
if(x%v[i]==0)
{
aux=1;
nr=0;
while(x%v[i]==0)
x/=v[i], nr++;
aux=aux*v[i];
nrd=nrd*(nr+1);
sd=( sd*(aux-1)/(v[i]-1) )%mod;
p1=( putere(v[i], nr+1)-1)%mod;
p2=putere(v[i]-1, mod-2)%mod;
sd=( ( (sd*p1)%mod )*p2 )%mod;
if(sd==0)
sd=mod;
}
i++;
}
if(x>1)
{
nrd*=2;
sd=( 1LL*sd*(x+1)%mod );
}
g<<nrd<<' '<<sd<<"\n";
}
return 0;
}