URL invalid

Cod sursa(job #2931261)

Utilizator highonrocketfuelOverweight Raccoon highonrocketfuel Data 30 octombrie 2022 19:03:44
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#define maxs(a, b) a = (a > b) ? a : b
#define mins(a, b) a = (a < b) ? a : b

#define all(a) a.begin(), a.end()
#define rng(a, i, j) a.begin() + i, a.begin() + j

#define aall(a, n) a + 1, a + 1 + n
#define arng(a, i, j) a + i, a + j

#define pb push_back
#define ins insert
#define sz(a) (int)a.size()

#define r inFile
#define w outFile
#define wd std::cout

#include <fstream>
#include <iostream>

const int NMAX = 1e6;

int phi[1 + NMAX];

void erathosthenes(int n) {
  for (int i = 2; i <= n; ++i) {
    phi[i] = i;
  }

  for (int i = 2; i <= n; ++i) {
    if (phi[i] != i) {
      continue;
    }

    for (int j = i; j <= n; j += i) {
      phi[j] = phi[j] / i * (i - 1);
    }
  }
}

int main() {
  std::ifstream inFile("fractii.in");
  std::ofstream outFile("fractii.out");

  int n;
  r >> n;

  erathosthenes(n);

  int64_t ans = 0;
  for (int i = 2; i <= n; ++i) {
    ans += phi[i];
  }

  ans = 2 * ans + 1;

  w << ans << '\n';

  return 0;
}