Pagini recente » Cod sursa (job #429008) | Cod sursa (job #606335) | concurs_nou1 | Cod sursa (job #2231658) | Cod sursa (job #628923)
Cod sursa(job #628923)
#include <stdio.h>
#define N 1000001
short l[N+10];
int p[79000],i,k=2,j,np=0,s,d,m,t;
long long n,q;
int main () {
FILE * in=fopen ("ssnd.in","r");
FILE * out=fopen ("ssnd.out","w");
for (i=2; i<N; i++) l[i]=1;
while (k<=N) {
while (!l[k]) k++;
p[np++]=k;
for (j=k; j<N; j+=k) l[j]=0;
}
np--;
fscanf (in,"%d",&t);
for (i=0; i<t; i++) {
fscanf (in,"%lld",&n);
s=d=1;
for (m=0; m<np&&p[m]<=n; m++) {
j=p[m];
if (!(n%j)) {
k=1;
q=j*j;
while (!((n=n/j)%j)) {
k++;
q*=j;
}
d*=(k+1);
s*=(q-1)/(j-1);
s%=9973;
}
}
fprintf (out,"%d %d\n",d,s);
}
fclose (in); fclose (out);
return 0;
}