Cod sursa(job #800633)

Utilizator costicaMocanu Alexandru costica Data 22 octombrie 2012 10:47:33
Problema Fractii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.43 kb
#include <stdio.h>

long v[1000001];

int main() {
  freopen("fractii.in", "r", stdin);
  freopen("fractii.out", "w", stdout);
  
  long n;
  scanf("%ld", &n);

  long i, j;
  for (i = 2; i < n+1; i++)
    v[i] = i;

  long long result = 1;
  for (i = 2; i < n+1; i++){
    if (v[i] == i) { 
      for (j = i; j < n+1; j+=i) {
	v[j] /= i;
	v[j] *= (i-1);
      }
    }
    result += (2 * v[i]);
  }
 
  printf("%lld\n", result);
  return 0;
}