Pagini recente » Cod sursa (job #2068028) | Cod sursa (job #875417) | Cod sursa (job #373760) | Cod sursa (job #1904272) | Cod sursa (job #2471811)
#include <iostream>
#include <fstream>
#define mod 9973
using namespace std;
int modpow(int b, int e)
{
int rez=1;
for(;e;e>>=1)
{
if(e&1)
rez=(rez*b)%mod;
b=(b*b)%mod;
}
return rez;
}
void dfp(int x, int &sd, int &pd)
{
sd=1; pd=1;
int p=0;
while(x%2==0)
x/=2,p++;
sd*=(p+1);
int sus=modpow(2,p+1),jos=1;
jos=modpow(jos,mod-2);
pd=((pd*(sus-1))%mod *jos)%mod;
for(int d=3;d*d<=x;d+=2)
{
p=0;
while(x%d==0)
x/=d,p++;
sus=modpow(d,p+1);
jos=d-1;
pd=(pd*(sus-1))%mod;
jos=modpow(jos,mod-2);
pd=(pd*jos)%mod;
}
if(x!=1)
sd*=2,pd*=(x+1);
}
int main()
{
ifstream fin("fis.in");
int t;
fin>>t;
while(t--)
{
int x,s,p;
fin>>x;
dfp(x,s,p);
cout<<s<<" "<<p<<"\n";
}
return 0;
}