Pagini recente » Cod sursa (job #1344715) | Cod sursa (job #3200607) | Cod sursa (job #2216361) | Cod sursa (job #2822997) | Cod sursa (job #418124)
Cod sursa(job #418124)
#include <cstdio>
#include <cmath>
#define infile "ssnd.in"
#define outfile "ssnd.out"
#define MaxN 1000000
#define modulo 9973
bool a[MaxN];
long long val[15],D[15],S[15],max;
int T;
void read()
{
int i;
scanf("%d",&T);
for(i=1;i<=T;i++)
{
scanf("%lld",&val[i]);
if(val[i]>max)
max=val[i];
}
}
void prime()
{
long long i,j;
a[1]=true;
for(i=2;i*i<=MaxN;i++)
if(a[i]==false)
for(j=2;j*i<=MaxN;j++)
a[i*j]=true;
}
void descompune(long long x,int l)
{
long long m,i,R;
i=2; D[l]=S[l]=1;
while(x>1)
{
while(a[i]==true)
i++;
R=0; m=i;
while(x%i==0)
{
R++;
x/=i;
m*=i;
}
D[l]*=(R+1);
S[l]*=(m-1)/(i-1);
S[l]%=modulo;
i++;
}
}
void solve()
{
prime();
int i;
for(i=1;i<=T;i++)
descompune(val[i],i);
}
void write()
{
int i;
for(i=1;i<=T;i++)
{
printf("%lld ",D[i]);
printf("%lld\n",S[i]);
}
}
int main()
{
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
read();
solve();
write();
fclose(stdin);
fclose(stdout);
return 0;
}