Pagini recente » Cod sursa (job #511614) | Cod sursa (job #2320943) | Cod sursa (job #1282263) | Cod sursa (job #837528) | Cod sursa (job #2246009)
#include <iostream>
#include <fstream>
using namespace std;
const long long prim=9973;
ifstream fi("ssnd.in");
ofstream fo("ssnd.out");
int t;
long long n,suma=1,nr=1;
long long ridLog(long long b,long long p)
{
long long r=1;
for(long long i=1;i<=(1LL<<60);i*=2)
{
if(i&p)
r*=b;
b*=b;
}
return r;
}
long long formula(long long b,long long p)
{
return (ridLog(b,p+1)-1)/(b-1);
}
int main()
{
fi>>t;
for(int i=1;i<=t;i++)
{
fi>>n;
long long d=2,putere=0;
suma=1;
nr=1;
long long cop=n;
while(n>1 && d*d<=cop)
{
if(n%d==0)
{
putere++;
n/=d;
}
else
{
if(putere)
{
suma*=formula(d,putere);
nr*=(putere+1);
suma%=prim;
nr%=prim;
}
putere=0;
d++;
}
}
if(putere)
{
suma*=formula(d,putere);
nr*=(putere+1);
}
if(n>1)
{
nr*=2;
suma*=formula(n,1);
}
suma%=prim;
nr%=prim;
fo<<nr<<" "<<suma<<endl;
}
return 0;
}