Pagini recente » Cod sursa (job #1462752) | Cod sursa (job #495434) | Cod sursa (job #43284) | Cod sursa (job #1647195) | Cod sursa (job #1117162)
#include <fstream>
using namespace std;
ifstream fi("ssnd.in");
ofstream fo("ssnd.out");
long long T,t,N,diviz;
long long D[50];
int i,E[50],k;
long long rez1,rez2;
long long putere(long long a, int p)
{
if (p==0)
return 1LL;
if (p%2==0)
return putere(a*a,p/2);
return a*putere(a,p-1);
}
int main()
{
fi>>T;
for (t=1LL;t<=T;t++)
{
fi>>N;
k=0;
for (i=0;i<50;i++)
{
D[i]=0LL;
E[i]=0;
}
diviz=2LL;
while (N!=1LL)
{
if (diviz*diviz>N)
{
k++;
D[k]=N;
E[k]=1;
N=1LL;
break;
}
else
if (N%diviz==0LL)
{
k++;
D[k]=diviz;
E[k]=0;
while (N%diviz==0LL)
{
E[k]++;
N=N/diviz;
}
}
diviz++;
}
rez1=1LL;
for (i=1;i<=k;i++)
rez1=rez1*(long long)(E[i]+1);
fo<<rez1<<" ";
rez2=1LL;
for (i=1;i<=k;i++)
rez2=(rez2*((putere(D[i],E[i]+1)-1LL)/(D[i]-1LL)))%9973;
fo<<rez2%9973<<"\n";
}
fi.close();
fo.close();
return 0;
}