Pagini recente » Cod sursa (job #1136832) | Cod sursa (job #3127967) | Cod sursa (job #460788) | Cod sursa (job #2415968) | Cod sursa (job #455988)
Cod sursa(job #455988)
#include<stdio.h>
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
long long i,j,nr=0,v[1000005];
char prim[1000005];
for(i=2;i<=1000000;i++)
prim[i]=1;
for(i=2;i*i<=1000000;i++)
if (prim[i])
{
nr++;
v[nr]=i;
for(j=i+i;j<=1000000;j+=i)
prim[j]=0;
}
int t;
long long n,m,nd,s,c,p;
scanf("%i",&t);
for(;t;--t)
{
scanf("%li",&n);
if (prim[n])
{
nd=2;
s=n+1;
}
else
{
m=n;
nd=1; s=1;
for(i=1;prim[n]==0;i++)
{
c=0;p=1;
while(n%v[i]==0)
{
c++;
n=n/v[i];
p=p*v[i];
}
if (c!=0)
{
nd=nd*(c+1);
p=p*v[i];
s=s*(p-1)/(v[i]-1);
}
}
nd=nd*2;
s=s*(n*n-1)/(n-1);
}
printf("%li %li\n",nd,s%9973);
}
return 0;
}