Cod sursa(job #975226)

Utilizator stefanfStefan Fulger stefanf Data 19 iulie 2013 14:16:43
Problema Fractii Scor 40
Compilator c Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

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

	int i,j;
    int n;
    fscanf(f, "%d", &n);

    int *v = malloc ((n + 1) * sizeof(int));

	for (i = 2; i <= n; i++) {
		v[i] = i;
		if (i % 2 == 0)
			v[i] /= 2;
	}

	for (i = 3; i <= n; i++)
	  if (v[i] == i) {
	    for (j = i; j <= n; j+=i)
		  v[j] = (v[j] / i) * (i - 1) ;
	}

	for (i = 2; i <= n; i++)
	  printf("%d %d\n", i, v[i]);

    unsigned long suma = 0;
    for (i = 2; i <= n; i++)
      suma += v[i];

    fprintf(g,"%lu\n", suma * 2 + 1);

    fclose(f);
    fclose(g);
    free(v);
    return 0;
}