Pagini recente » Cod sursa (job #1852187) | Cod sursa (job #2438555) | Cod sursa (job #1719950) | Cod sursa (job #612387) | Cod sursa (job #1111824)
#include <fstream>
#include <algorithm>
#include <bitset>
#include <cmath>
#include <ctime>
#define mod 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t, prim[80000], nr, lim, prod, k;
long long sum, X;
bitset < 1000005 > viz;
void ciur()
{
prim[++nr]=2;
for (int i=3; i<=1000000; i+=2)
if (!viz[i])
{
prim[++nr]=i;
if (i<=1000)
for (int j=i*i; j<=1000000; j+=i)
viz[j]=1;
}
}
long long log_pow(long long baza, long long exp)
{
long long res=1;
while (exp)
{
if (exp%2) res=(res*baza)%mod;
baza=(baza*baza)%mod; exp/=2;
}
return res;
}
int main()
{
f>>t; ciur();
while (t--)
{
f>>X; prod=sum=1;
for (int i=1; prim[i]*prim[i]<=X && i<=nr; ++i)
if (X%prim[i]==0)
{
k=0;
while (X%prim[i]==0) ++k, X/=prim[i];
prod*=(k+1);
int x1=log_pow(prim[i], k+1)-1, x2=log_pow(prim[i]-1, mod-2);
sum*=x1*x2;
if (sum>mod) sum%=mod;
}
if (X>1) prod*=2, sum*=(X+1);
g<<prod<<' '<<sum%mod<<'\n';
}
return 0;
}