Pagini recente » Rating Miri Marius-Alin (AlinMiri) | Cod sursa (job #1210033) | Rating Ionescu Roxana-Ioana (roxanaionescu) | Cod sursa (job #963115) | Cod sursa (job #2439344)
#include <stdio.h>
#include <stdlib.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] <= n / 2)
{
if(n % a[i] == 0)
{
nr++;
s = s + a[i];
int j = 2;
while(j * a[i] < n)
{
if(n % (j * a[i]) == 0)
{
ok = 1;
for(int l = 0; l < i; l++)
if(a[l] == j)
{
ok = 0;
break;
}
if(ok == 1)
{
nr++;
s = s + j * a[i];
}
}
j++;
}
}
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;
}