Pagini recente » Cod sursa (job #2642666) | Cod sursa (job #1462437) | Cod sursa (job #1880975) | Cod sursa (job #1629442) | Cod sursa (job #2439362)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long a[1000000], b[1000000];
int k = 0;
void ciur()
{
for(int i = 2; i <= 1000000; i++)
{
if(b[i] == 0)
{
b[i] = 1;
for(int j = 2 * i; j <= 1000000; j = j + i)
b[j] = 1;
a[k++] = i;
}
}
}
void ssndf(int n, FILE **write)
{
int i = 0, nr = 2, s = n + 1, ok;
while(a[i] <= sqrt(n))
{
if(n % a[i] == 0)
{
nr++;
s = s + a[i];
if(sqrt(n) != a[i])
{
nr++;
s = s + (n / a[i]);
}
}
i++;
}
fprintf(*write, "%d %d\n", nr, s % 9973);
}
int main()
{
FILE *read = fopen("ssnd.in", "r");
FILE *write = fopen("ssnd.out", "w");
int n;
long x;
ciur();
fscanf(read, "%d", &n);
for(int i = 0; i < n; i++)
{
fscanf(read, "%li", &x);
ssndf(x, &write);
}
fclose(read);
fclose(write);
return 0;
}