Pagini recente » Cod sursa (job #2475908) | Cod sursa (job #705727) | Cod sursa (job #1249430) | Cod sursa (job #2182361) | Cod sursa (job #417701)
Cod sursa(job #417701)
#include <stdio.h>
#include <math.h>
#define MAX 1000000
int ciur[MAX];
long long n, sum, div, put;
int t, i, j, k;
int main()
{
FILE *f = fopen ("ssnd.in","r");
FILE *g = fopen ("ssnd.out","w");
fscanf (f,"%d", &t);
for (i=1; i<=MAX; ++i)
ciur[i] = 1;
for (i=2; i*i < MAX; ++i)
if (ciur[i])
for (j=2; j*i < MAX; ++j)
ciur[i*j] = 0;
for (i=1; i<=t; ++i)
{
fscanf (f,"%lld", &n);
div = sum = 1;
j = 2;
while (n > 1)
{
while (!ciur[j])
j ++;
put = 0;
while (n % j == 0)
{
put ++;
n /= j;
}
div *= (put+1);
sum *= ( (pow(j,put+1) - 1) / (j-1) );
j ++;
}
fprintf (g,"%lld %lld\n", div, sum % 9973);
}
fclose(g);
fclose(f);
return 0;
}