Pagini recente » Cod sursa (job #2116269) | Cod sursa (job #136895) | Cod sursa (job #2830473) | Cod sursa (job #2820902) | Cod sursa (job #527529)
Cod sursa(job #527529)
#include<stdio.h>
#include<math.h>
#define max 1000000
#define mod %9973
struct fact
{
int x,y;
};
int qq,nr,m,i,j,ok[max],q,t,a[80000];
long long p2,p,pp,n;
fact b[80000];
void ciur()
{
m=1;
a[1]=2;
for (i=3;i<=max;i+=2)
if (!ok[i])
{
a[++m]=i;
if (i<sqrt(max)) for (j=i*i;j<=max;j+=i)
ok[j]=1;
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&t);
ciur();
for (i=1;i<=t;i++)
{
scanf("%lld",&n);
nr=0;
p=1;
pp=1;
for (j=1;a[j]*a[j]<=n;j++)
if (n%a[j]==0)
{
p2=1;
q=0;
while (n%a[j]==0)
{
n/=a[j];
q++;
}
p*=(q+1);
for (qq=1;qq<=q+1;qq++)
p2*=a[j];
pp=(pp*((p2-1)/(a[j]-1)))mod;
if (n==1) break;
}
if (n!=1)
{
p*=2;
pp=(pp*((long long)(n*n-1)/(n-1)))mod;
}
printf("%lld ",p);
printf("%lld\n",pp);
if (i==2)
{
p++;
p--;
}
}
return 0;
}