Pagini recente » Cod sursa (job #186639) | Cod sursa (job #2329033) | Cod sursa (job #3239663) | Cod sursa (job #2039446) | Cod sursa (job #1193516)
#include <fstream>
#include <cmath>
using namespace std;
#define LL long long
#define MOD 9973
#define NMAX1 1000005
#define NMAX2 100005
LL N,X,E,S,P,i;
LL sel[NMAX1];
LL prime[NMAX2];
ifstream f("ssnd.in");
ofstream g("ssnd.out");
void Ciur()
{
for (LL i=2;i<NMAX1;i++)
{
if (sel[i]) continue;
prime[++prime[0]]=i;
for (LL j=2*i;j<NMAX1;j+=i) sel[j]=true;
}
}
int main()
{
f>>N;
Ciur();
while (N--)
{
f>>X;
P=S=i=1;
while (X && X>=prime[i]*prime[i])
{
E=0;
while (!(X%prime[i]))
{
X/=prime[i];
++E;
}
if (E)
{
S=((S%MOD)*(((int)pow(1.0*prime[i],1.0*(E+1))-1))/(prime[i]-1))%MOD;
P=P*(E+1);
}
++i;
}
if (X>=2)
{
P*=2;
S=( (S%MOD) * ( (X*X-1) / (X-1) ) ) %MOD;
}
g<<P<<" "<<S<<"\n";
}
f.close();
g.close();
return 0;
}