Pagini recente » Cod sursa (job #1227909) | Cod sursa (job #1351287) | Cod sursa (job #1995511) | Cod sursa (job #1071371) | Cod sursa (job #2571758)
#include <fstream>
#define int long long
#define mod 9973
using namespace std;
int n,k;
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
int exp (int n, int k)
{
int ans = 1;
while (k)
{
if (k&1)
ans = (ans * n) % mod;
k>>=1;
n = (n * n) % mod;
}
return ans % mod;
}
int nrdiv (int k)
{
int p = 1;
for (int d = 2;d * d <=k;++d)
{
int s = 0;
while (k%d==0)
s++,k/=d;
p*=s+1;
}
if (k!=1)
p *= 2;
return p;
}
int sumdiv (int k)
{
int ans = 1;
for (int i = 2;i*i<=k;++i)
{
int s = 0;
while (k%i==0)
s++,k/=i;
if (s)
ans = (ans * (exp(i,s+1)-1) / (i-1)) % mod;
}
if (k!=1)
ans = (ans * (exp(k,2)-1) / (k-1)) % mod;
return ans % mod;
}
main()
{
in>>n;
for (int i = 1;i<=n;++i)
{
in>>k;
out<<nrdiv(k)<<' ';
out<<sumdiv(k)<<'\n';
}
return 0;
}