Cod sursa(job #2564129)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 1 martie 2020 18:27: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;

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

const int NMAX = 1000005;

int N;
bool p[NMAX];
int ind[NMAX];

int main()
{
    fin >> N;
    for( int i = 2; i <= N; ++i )
      ind[i] = i;

    for( int i = 3; i <= N; i += 2 )
      p[i] = true;

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

    for( int i = 3; i <= N; i += 2 )
      if( p[i] )
       for( int j = 1; i * j <= N; ++j ) {
         ind[i * j] = 1LL * ind[i * j] * ( i - 1 ) / i;
         p[i * j] = false;
       }

    //for( int i = 1; i <= N; ++i )
    //  fout << ind[i] << ' ';

    long long _ans = 0;

    for( int i = 1; i <= N; ++i )
      _ans += ind[i];

    fout << _ans * 2 + 1 << '\n';

    fin.close();
    fout.close();

    return 0;
}