Pagini recente » Cod sursa (job #2343542) | Cod sursa (job #796294) | Cod sursa (job #793188) | Cod sursa (job #2157394) | Cod sursa (job #1014305)
#include<stdio.h>
#include<math.h>
int n,i,j,p[100013],np,y,nr;
long long x,nrd,sd;
bool k[1000013];
bool da;
inline int pow(int a, int b)
{
if(b==0)return 1;
long long x=a,y=1;
while(b!=1)
if(b%2==0) x=(x*x),b/=2;
else y=(x*y),--b;
return(x*y);
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&n);
for(i=2;i<1000000;++i)k[i]=1;
for(i=2,np=0;i*i<1000000;++i)
if(k[i])
{
j=i;
while(i*j<1000000)
{
k[i*j]=0;
++j;
}
p[np++]=i;
}
for(int q=0;q<n;++q)
{
scanf("%lld",&x);
nrd=sd=1;
y=(int)sqrt(x);
i=0;
while(x!=1)
{
nr=0;
while(x%p[i]==0) x/=p[i],++nr;
if(nr==0){++i;continue;}
nrd*=(nr+1);
sd=( sd * ( (pow (p[i],nr+1) -1) / (p[i]-1) ) )%9973;
++i;
}
printf("%lld %lld\n",nrd,sd%9973);
}
return 0;
}