Pagini recente » Cod sursa (job #596339) | Cod sursa (job #2028101) | Cod sursa (job #2511614) | Cod sursa (job #1997411) | Cod sursa (job #628932)
Cod sursa(job #628932)
#include <stdio.h>
#define N 1000001
char l[N+10];
int p[79000],i,k=2;
long long j,np=0,m,n,n2;
short t,d,s;
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,"%hd",&t);
for (i=0; i<t; i++) {
fscanf (in,"%lld",&n);
printf("n = %lld\n",n);
s=d=1LL;
for (m=0; m<np&&p[m]<=n; m++) {
n2=n;
j=p[m];
if (!(n%j)) {
k=1;
while (!((n=n/j)%j)) k++;
d*=(k+1);
s=s*(n2/n*j-1)/(j-1)%9973;
}
}
fprintf (out,"%hd %hd\n",d,s);
}
fclose (in); fclose (out);
return 0;
}