Cod sursa(job #592954)

Utilizator carbonixVictor Carbune carbonix Data 31 mai 2011 17:13:39
Problema Fractii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>

unsigned long totient(unsigned long n)
{
    unsigned long result, i;

    result = n;

    for (i = 2; i * i <= n; i++) {
        if (n % i == 0)
            result -= result / i;

        while (n % i == 0) {
            n /= i;
        }
    }

    if (n > 1) result -= result / n;

    return result;
}

int main() {
    FILE *fin = fopen("fractii.in", "r");
    FILE *fout = fopen("fractii.out", "w");
    unsigned long n, i, result = 0;

    fscanf(fin, "%d", &n);

    for (i = 2; i <= n; i++) {
        result += totient(i);
    }

    result = result * 2 + 1;

    printf("%ld\n", result);

    fclose(fin);
    fclose(fout);

    return 0;
}