Pagini recente » Cod sursa (job #279716) | Cod sursa (job #1349371) | Cod sursa (job #1641458) | Cod sursa (job #2760926) | Cod sursa (job #650911)
Cod sursa(job #650911)
#include <stdio.h>
FILE *f,*g;
int v[1000001];
int prim[100000];
int j,i,n;
void ciur()
{prim[0]=1;
prim[1]=2;
for(i=2;i<=n;i++)v[i]=1;
for(i=2;i<=n;i++)
if(v[i]==1)
{prim[++prim[0]]=i;
for(j=i+i;j<=n;j+=i)
v[j]=0;}
}
void rez(long long x)
{long long nr, sum, t, i, exp;
nr=sum=1;
for(i=1;prim[i]*prim[i]<=x;i++)
{if(x%prim[i]==0)
{exp=1;
t=prim[i];
while(x%prim[i]==0)
{exp++;
x=x/prim[i];
t=t*prim[i];
}
nr*=exp;
sum*=(t-1)/(prim[i]-1)%9973;
}
}
if(x!=1)
{sum*=(x*x-1)/(x-1)%9973;
nr*=2;
}
fprintf(g,"%lld %lld\n",nr,sum%9973);
}
int main()
{long long n, b;
f=fopen("ssnd.in","r");
g=fopen("ssnd.out","w");
ciur();
fscanf(f,"%lld",&n);
while(n--)
{fscanf(f,"%lld",&b);
rez(b);
}
fclose(f);
fclose(g);
return 0;
}