Cod sursa(job #1652191)

Utilizator razvandRazvan Dumitru razvand Data 14 martie 2016 19:18:05
Problema Fractii Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("fractii.in");
ofstream out("fractii.out");

long long getphi(long long nr) {
    long long cur = nr;
    if(nr%2 == 0) {
        while(nr%2 == 0)
            nr /= 2;
        cur = cur/2;
    }
    for(long long i = 3;i * i <= nr; i += 2) {
        if (nr % i == 0) {
            while(nr % i == 0)
                nr /= i;
            cur = (cur / i) * (i - 1);
        }
    }
    if (nr != 1)
        cur = cur / nr * (nr - 1);
    return cur;
}

int main() {
    int n;
    in >> n;
    long long s = 0;

    for(int i = 1; i <= n; i++) {

        s += getphi(i);

    }

    out << s*2-1;

    return 0;
}