Cod sursa(job #1194882)

Utilizator naetnumsSorin Muntean naetnums Data 5 iunie 2014 03:13:08
Problema Fractii Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream input("fractii.in");
    ofstream output("fractii.out");
    int n = 0;
    while (input >> n) {
        int sieve[n+1];

        for (int i = 0; i <= n+1; i++) {
            sieve[i] = 1;
        }

        for (int i = 2; i <= n; i++) {
            for (int j = 2; j * i <= n; j++) {
                sieve[j*i] = 0;
            }
        }

        int phi[n+1];

        for (int i = 2; i <= n; i++) {
            phi[i] = i;
            for (int j = 2; j <= i; j++) {
                if (sieve[j] == 1 && i % j == 0) {
                    phi[i] = phi[i] * (j - 1) / j;
                }
            }
        }

        int sum = 0;
        for (int i = 2; i <= n; i++) {
            sum += phi[i];
        }

        output << sum * 2 + 1 << endl;
    }

    return 0;
}