Pagini recente » Cod sursa (job #1525983) | Cod sursa (job #27089) | Cod sursa (job #1922865) | Cod sursa (job #2776764) | Cod sursa (job #2332707)
#include <stdio.h>
#include <stdlib.h>
int pow_raised(int base, int n) {
int result = 1;
while (1) {
if (n & 1) {
result *= base;
}
n >>= 1;
if (!n) {
break;
}
base *= base;
}
return result;
}
int divizori(int a, int n) {
int sum = 0, tmp;
for (int i = 2; i <= a ; ++i) {
tmp = pow_raised(i, n + 1) - 1;
tmp /= (i - 1);
sum += tmp;
}
return sum % 9901;
}
int main() {
FILE *in, *out;
if (((in = fopen("sumdiv.in", "rt")) == NULL)) {
printf("Nu am putut deschide fisierul de input!");
return -1;
}
if (((out = fopen("sumdiv.out", "wt")) == NULL)) {
printf("Nu am putut deschide fisierul de output!");
return -2;
}
int a, n;
fscanf(in, "%d %d", &a, &n);
fprintf(out, "%d", divizori(a, n));
// Freeing the memory
fclose(in);
fclose(out);
return 0;
}