Cod sursa(job #2118495)

Utilizator DruffbaumPopescu Vlad Druffbaum Data 30 ianuarie 2018 18:21:12
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>

const int MAXN = 1e5;

int phi[MAXN + 1];

int main() {
  int n, x;
  FILE *fin = fopen("sum.in", "r");
  fscanf(fin, "%d", &n);
  for (int i = 2; i <= MAXN; ++i) {
    phi[i] = i;
  }
  for (int i = 2; i <= MAXN; ++i) {
    if (phi[i] == i) {
      for (int j = i; j <= MAXN; j += i) {
        phi[j] = phi[j] * (i - 1) / i;
      }
    }
  }
  FILE *fout = fopen("sum.out", "w");
  for (int i = 0; i < n; ++i) {
    fscanf(fin, "%d", &x);
    fprintf(fout, "%d\n", 2 * x * phi[x]);
  }
  fclose(fin);
  fclose(fout);
  return 0;
}