Cod sursa(job #563942)

Utilizator vlad2901Vlad Berindei vlad2901 Data 26 martie 2011 13:48:03
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>


int main() {
    int n, *fi, *prim, i, j;
    long long rez = 0;
    FILE *fin = fopen("fractii.in", "r");
    FILE *fout = fopen("fractii.out", "w");
    fscanf(fin,"%d",&n);
    fi = new int[n+1];
    prim = new int[n+1];
    for(i=1;i<=n;i++) {
        fi[i] = i;
        prim[i] = 1;
    }
    
    for(i = 2;i<= n;i++) {
        if(prim[i]) {
            fi[i] = i-1;
            for(j=i*2;j<=n;j+=i) {
                prim[j] = 0;
                fi[j] = (fi[j]/i)*(i-1);        
            }
        }
    }
    for(i=1;i<=n;i++) {
        rez += fi[i];
    }
    rez = 2*rez -1;
    
    fprintf(fout, "%lld", rez); 
    
    return 0;
}