Pagini recente » Cod sursa (job #1413529) | Cod sursa (job #2051777) | Cod sursa (job #1565796) | Cod sursa (job #2001881) | Cod sursa (job #664489)
Cod sursa(job #664489)
# include <stdio.h>
#include<math.h>
int nrp[1000005],i,j,k=1,p,t,nr,s,m=9973,it;
bool prim[1000005],ok;
long long n;
char ch;
long long putere(int a,int b)
{
long long aux;
if (b==0)return 1;
else
if(b%2==0)
{
aux=putere(a,b/2);
return (aux*aux);
}
else
return (a*putere(a,b-1));
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d\n",&t);
nrp[k]=2;
for (i=3; i<=500001; i+=2)
if (prim[i]==false)
{
k++;
nrp[k]=i;
j=3*i;
while(j<=1000005)
{
prim[j]=true;
j=j+2*i;
}
}
for (it=1; it<=t; it++)
{
scanf ("%lld\n",&n);
i=1; s=1; p=1;
while (nrp[i]<=sqrt(n))
{
if (n%nrp[i]==0)
{
nr=1;
while (n%nrp[i]==0)
{
nr++;
n=n/nrp[i];
}
p=(p*nr)%m;
s=(s*((putere(nrp[i],nr)-1)/(nrp[i]-1))%m)%m;
}
i++;
}
if (n>1)
{
p=(p*2)%m;
s=(s*(n+1))%m;
}
printf("%d %d\n",p,s);
}
fclose(stdin);fclose(stdout);
return 0;
}