Pagini recente » Cod sursa (job #2483388) | Cod sursa (job #2373702)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long x, k, t;
bool ciur[1000001];
long long prime[80000];
const long long MOD=9973;
void compute_ssnd(long long x)
{
long long k=1;
long long ndivs=1;
long long sumdivs=1;
while(prime[k]*prime[k]<=x)
{
int e=0;
long long nr=prime[k];
if(x%prime[k]==0)
{
while(x%prime[k]==0)
{
x=x/prime[k];
++e;
nr=nr*prime[k];
}
}
if(e>0)
{
ndivs=ndivs*(e+1);
sumdivs=sumdivs*(nr-1)/(prime[k]-1)%MOD;
}
++k;
}
if(x>1)
{
ndivs=ndivs*2;
sumdivs=sumdivs*(x*x-1)/(x-1)%MOD;
}
fout<<ndivs<<" "<<sumdivs<<"\n";
}
int main()
{
for(int d=2; d*d<=1000000; ++d)
{
if(!ciur[d])
{
prime[++k]=d;
for(int i=d*d; i<=1000000; i=i+d) ciur[i]=1;
}
}
fin>>t;
while(t--)
{
int x;
fin>>x;
compute_ssnd(x);
}
return 0;
}