Cod sursa(job #2781137)

Utilizator Teodor94Teodor Plop Teodor94 Data 8 octombrie 2021 16:47:05
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>

#define MAX_N 1000000

int euler[MAX_N + 1];

int main() {
  FILE *fin, *fout;
  fin = fopen("fractii.in", "r");
  fout = fopen("fractii.out", "w");

  int n, i, j;
  long long s;
  fscanf(fin, "%d", &n);

  for (i = 2; i <= n; ++i)
    euler[i] = i;

  for (i = 2; i <= n; ++i)
    if (euler[i] == i)
      for (j = i; j <= n; j += i)
        euler[j] = euler[j] / i * (i - 1);

  s = 1;
  for (i = 2; i <= n; ++i)
    s += euler[i] * 2;

  fprintf(fout, "%lld\n", s);

  fclose(fin);
  fclose(fout);
  return 0;
}