Pagini recente » Cod sursa (job #1523047) | Cod sursa (job #784422) | Cod sursa (job #1537024) | Cod sursa (job #794658) | Cod sursa (job #478635)
Cod sursa(job #478635)
#include <stdio.h>
#include <stdlib.h>
#define N 1000000
int ciur(char *v, int *w)
{
int i, j, nw = 0;
for (i = 2; i <= N; i++)
if (v[i] == 0)
{
w[nw++] = i;
for (j = 2 * i; j < N; j = j + i) v[j] = 1;
}
return nw;
}
void desc(int n, int *w, int nw, FILE *g)
{
int i = 0;
long long s = 1, p, nr = 1, d, sm;
while (n > 1)
{
d = 0; p = 1;
while (n % w[i] == 0)
{
d++;
p *= w[i];
n /= w[i];
}
nr *= (d + 1);
p *= w[i];
sm = ((p - 1) / (w[i] - 1)) % 9973;
s = (s * sm) % 9973;
i++;
}
fprintf(g, "%lld %lld\n", nr, s);
}
int main()
{
int t, n, i;
FILE *f, *g;
f = fopen("ssnd.in", "r");
g = fopen("ssnd.out", "w");
char *v = (char *)calloc(N, sizeof(char));
int *w = (int *)malloc(sizeof(int) * (N / 10));
int nw = ciur(v, w);
fscanf(f, "%d", &t);
for (i = 0; i < t; i++)
{
fscanf(f, "%d", &n);
desc(n, w, nw, g);
}
fclose(f);
fclose(g);
return 0;
}