Pagini recente » Cod sursa (job #1780348) | Cod sursa (job #1110669) | Cod sursa (job #428627) | Cod sursa (job #1119183) | Cod sursa (job #2457154)
#include <bits/stdc++.h>
#define N 1000000
#define LL long long
#define MOD 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bitset <1000000> b;
int cnt,prim[500000];
void ciur()
{
int i,j;
b[1]=b[0]=1;
for (i=4; i<=N; i+=2)
b[i]=1;
for (i=3; i*i<=N; i+=2)
if (b[i]==0)
for (j=i*i; j<=N; j+=2*i)
b[j]=1;
cnt=0;
for (i=1; i<=N; i++)
if (b[i]==0)
prim[++cnt]=i;
}
LL Quick(LL a, LL b)
{
LL p=1;
while (b)
{
if (b%2==1) p=p*a;
b/=2;
a=a*a;
}
return p;
}
void functie(LL x)
{
LL i,p,nrd=1,sd=1,e;
for(i=1; prim[i]*prim[i]<=x; i++)
{
p=prim[i];
e=0;
if (x%p==0)
{
while (x%p==0)
{
e++;
x/=p;
}
nrd*=(e+1);
sd=(sd*((Quick(p,e+1)-1)/(p-1)))%9973;
}
}
if (x!=1)
{
nrd*=2;
sd=(sd*(x*x-1)/(x-1))%MOD;
}
fout << nrd << " " << sd << "\n";
}
int main()
{
long long x,n,i;
ciur();
fin >> n;
for (i=1; i<=n; i++)
{
fin >> x;
functie(x);
}
return 0;
}