Cod sursa(job #222265)

Utilizator danbanicaDan Banica danbanica Data 21 noiembrie 2008 17:11:23
Problema Fractii Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <stdlib.h>

long n;

int main()
{
 long i, j, k;
 long nr;
    FILE *f;
    FILE *g;
    f = fopen("fractii.in", "rt");
    g = fopen("fractii.out", "wt");
    
    fscanf(f, "%li", &n);
    
    
    long* v = (long*)malloc((n+1)*sizeof(long));
    
    nr = 0;
    for (i=1; i<=n; i++)
    {
        v[i] = i;
        nr+=i;
    }
    
    
    long aux;
    
    for (i=2; i<=n; i++)
    {
        if (v[i] == i)  // i prim
        {
            k = i;
            while (k <= n)
            {
                  aux = v[k]/i;
                  v[k] = aux * (i-1);           //(v[k]/k) * (k-1)
                  k+=i;
                  nr -= aux;
            }


        }
    }



    fprintf(g, "%li", 2*nr-1);

    return 0;
}