Pagini recente » Cod sursa (job #724175) | Cod sursa (job #147034) | Cod sursa (job #1363804) | Cod sursa (job #1780255) | Cod sursa (job #3178757)
#include <fstream>
#define mod 9973
#define sz 1000000
#include <vector>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long t,n;
bool c[sz + 5];
vector <long long> d;
long long power(long long base,long long exp)
{
long long prod = 1;
while(exp)
{
if(exp&1)
prod=(prod*base)%mod;
exp/=2;
base=(base*base)%mod;
}
return prod;
}
long long inv(long long nr)
{
return power(nr,mod-2);
}
void prim()
{
c[0]=1;
c[1]=1;
for(int i=2; i<=sz; i++)
if(!c[i])
{
d.push_back(i);
for(int j = 2*i; j<=sz; j+=i)
c[j]=1;
}
}
long long sd;
long long nrd;
void dv(long long x)
{
sd=1;
nrd=1;
int e=0;
for(int dz = 0;d[dz]*d[dz]<=x;dz++)
if(x%d[dz]==0)
{
e=1;
while(x%d[dz]==0)
e++,x/=d[dz];
nrd*=e;
sd=(sd * (power(d[dz],e)-1)%mod*inv(d[dz]-1)%mod)%mod;
}
if(x>1)
{
e=2;
nrd*=e;
sd=(sd*(x*x-1)%mod*inv(x-1))%mod;
}
}
int main()
{
prim();
fin>>t;
for(int i=1;i<=t;i++)
{
fin>>n;
dv(n);
fout<<nrd<<' '<<sd<<'\n';
}
}