Cod sursa(job #3168919)

Utilizator ifrim.claudiaClaudia Ifrim ifrim.claudia Data 13 noiembrie 2023 19:09:03
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
// https://www.infoarena.ro/problema/fractii
#include <iostream>
#include <fstream>

using namespace std;

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

const int MAX_LENGTH = 1000001;

long long n;

long long phi(long long n)
{
  long long count = 0;
  int phi[MAX_LENGTH];
  for (int i = 2; i <= n; i++)
    phi[i] = i;
  for (int i = 2; i <= n; i++)
  {
    if (phi[i] == i)
    {
      for (int j = i; j <= n; j += i)
      {
        phi[j] = phi[j] / i * (i - 1);
      }
    }
    count = count + phi[i];
  }

  return count;
}

int main()
{
  fin >> n;
  fin.close();

  if (n < 1 || n > 1000000)
  {
    return 0;
  }

  fout << phi(n) * 2 + 1 << endl;
  fout.close();

  return 0;
}