Pagini recente » Cod sursa (job #2893625) | Cod sursa (job #1422593) | Cod sursa (job #1971196) | Cod sursa (job #821371) | Cod sursa (job #1451997)
#include <stdio.h>
#define MAX_N 1000000
int phi[MAX_N + 1]; // phi[i] = numarul de nr <= n si prime cu acesta
void genPhi(int n) {
for (int i = 1; i <= n; i++) {
phi[i] = i;
}
for (int i = 2; i <= n; i++) {
if (phi[i] == i) {
for (int j = i; j <= n; j += i) {
phi[j] /= i;
phi[j] *= (i - 1);
}
}
}
}
int main(void) {
FILE *f = fopen("fractii.in", "r");
int n;
int s;
fscanf(f, "%d", &n);
fclose(f);
genPhi(n);
s = 0;
for (int i = 1; i <= n; i++) {
s += phi[i];
}
f = fopen("fractii.out", "w");
fprintf(f, "%d\n", 2 * s - 1); // o pereche de 2 numere prime intre ele determina 2 fractii ireductibile diferite, in afara de 1/1
fclose(f);
return 0;
}