Pagini recente » Cod sursa (job #1334557) | Cod sursa (job #1755785) | Cod sursa (job #1341745) | Cod sursa (job #3282794) | Cod sursa (job #664479)
Cod sursa(job #664479)
# include <stdio.h>
#include<math.h>
int nrp[1000001],i,j,k=1,prod,t,nr,nr1,s,m=9973,it;
bool prim[1000001],ok;
long long int a,b,aux,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<=500000; i+=2)
if (prim[i]==false)
{
k++;
nrp[k]=i;
j=3*i;
while(j<=1000000)
{
prim[j]=true;
j=j+2*i;
}
}
for (it=1; it<=t; it++)
{
scanf ("%lld\n",&n);
i=1; s=1; prod=1;
while (nrp[i]<=sqrt(n))
{
if (n%nrp[i]==0)
{
nr=1;
while (n%nrp[i]==0)
{
nr++;
n=n/nrp[i];
}
prod=(prod*nr)%m;
s=(s*((putere(nrp[i],nr)-1)/(nrp[i]-1))%m)%m;
}
i++;
}
if (n>1)
{
prod=(prod*2)%m;
s=(s*((n*n-1)/(n-1)))%m;
}
printf("%d %d\n",prod,s);
}
fclose(stdin);fclose(stdout);
return 0;
}