Cod sursa(job #2564123)

Utilizator Teo_1101Mititelu Teodor Teo_1101 Data 1 martie 2020 18:21:36
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 1000005;

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

int N, Phi[NMAX];
bool C[NMAX];

void PHI()
{
    for( int i = 3; i <= N; i++ )
        {Phi[i] = i;C[i] = 1;}

    Phi[2] = 1;
    C[2] = 1;

    for( int i = 4; i <= N; i += 2 ) Phi[i] = Phi[i] / 2;

    for( int i = 3; i <= N; i +=2 )
        if( C[i] == 1)
        {
            Phi[i] = i-1;
            for( int j = 2*i; j <= N; j += i )
            {
                C[j] = 0;
                Phi[j] = Phi[j] / i * ( i - 1 );
            }
        }
}
void Read()
{
    fin >> N;
    PHI();

    long long F = 0;
    for( int i = 2; i <= N; ++i )
        F += Phi[i];
    F *= 2;
    F++;
    fout << F;
}
int main()
{
    Read();
    return 0;
}