Pagini recente » Cod sursa (job #943971) | Cod sursa (job #1863485) | Diferente pentru home intre reviziile 902 si 640 | Cod sursa (job #105964) | Cod sursa (job #1293558)
#include <cstdio>
#define prim 9973
using namespace std;
FILE *f=fopen("ssnd.in","r");
FILE *g=fopen("ssnd.out","w");
long long n;
int d[100],e[100];
long long put(int t,int k)
{long long tt=1;
while (k!=0) {tt*=t;
k--;}
return tt;
}
void rez()
{int i=2,nr=0;
fscanf(f,"%lld",&n);
while (n!=1)
{if (n%i==0) {n/=i;
d[++nr]=i;
e[nr]=1;
while (n%i==0) {n/=i;
e[nr]++;}
}
else if (i*i>n)
{d[++nr]=n;
e[nr]=1;
n=1;
}
i++;
}
int di=1;
long long sum=1;
for (i=1;i<=nr;i++) di*=e[i]+1;
for (i=1;i<=nr;i++) sum*=(put(d[i],e[i]+1)-1)/(d[i]-1);
fprintf(g,"%d %d\n",di,sum%prim);
}
int main()
{int t;
fscanf(f,"%d",&t);
while (t!=0) {t--;
rez();}
return 0;
}