Cod sursa(job #2513660)

Utilizator EckchartZgarcea Robert-Andrei Eckchart Data 23 decembrie 2019 16:31:31
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
unsigned N;
unsigned phi[1000001];
long long S = 1;


void computeTotient(long n) 
{ 
    for (int i = 1; i <= n; ++i) 
    {
        phi[i] = i;
    }
  
    for (int p = 2; p <= n; ++p) 
    { 
        if (phi[p] == p) 
        { 
            phi[p] = p-1; 
  
            for (int i = 2 * p; i <= n; i += p) 
            { 
               phi[i] = (phi[i] / p) * (p - 1); 
            } 
        } 
    } 
}


int main()
{
    std::ifstream fisierIN("fractii.in");
    fisierIN >> N;
    fisierIN.close();

    computeTotient(N);
    for (unsigned i = 2; i <= N; ++i)
    {
        S += 2 * phi[i];
    }

    std::ofstream fisierOUT("fractii.out");
    fisierOUT << S;
    fisierOUT.close();
    return 0;
}