Cod sursa(job #2506511)

Utilizator SnokySlivilescu Vlad Snoky Data 8 decembrie 2019 12:22:44
Problema Fractii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#include <cmath>
using namespace std;

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

unsigned long long int indicator(unsigned long long int n) {
    unsigned long long int indicator = 1;
    unsigned long long int d = 2;
    while(d * d <= n) {
        unsigned long long int p = 0, nb = 1;
        while(n % d == 0) {
            n /= d;
            nb *= d;
            p++;
        }
        if(p > 0) {
            indicator *= (d - 1) * (nb / d);
        }
        d++;
    }
    if(n != 1) {
        indicator *= (n - 1);
    }
    return indicator;
}

int main() {
    unsigned long long int n, sol = 1;
    fin >> n;
    for(unsigned long long int i = 2; i <= n; i++)
        sol += indicator(i) * 2;
    fout << sol;
}