Cod sursa(job #1699436)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 7 mai 2016 12:10:57
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <cstdio>
using namespace std;
typedef long long i64;

const int NMAX = 1000005;

int phi[NMAX];

int main(void) {
    FILE *fi = fopen("fractii.in","r");
    FILE *fo = fopen("fractii.out","w");
    int n;
    i64 ans;

    fscanf(fi,"%d",&n);

    for(int i=1; i<=n; ++i)
        phi[i]=i;

    for(int i=2; i<=n; ++i)
        if(phi[i]==i)
            for(int j=i; j<=n; j+=i)
                phi[j]=phi[j]*(i-1)/i;

    ans = 0;

    for(int i=1; i<=n; ++i)
        ans+=phi[i];

    fprintf(fo,"%lld\n",2*ans-1);

    fclose(fi);
    fclose(fo);

    return 0;
}