Pagini recente » Cod sursa (job #923082) | Cod sursa (job #78957) | Cod sursa (job #1671951) | Cod sursa (job #2973468) | Cod sursa (job #417700)
Cod sursa(job #417700)
#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);
}
fclose(g);
fclose(f);
return 0;
}