Cod sursa(job #744381)

Utilizator MagnvsDaniel Constantin Anghel Magnvs Data 8 mai 2012 16:14:28
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cassert>
#include <cstdio>

typedef long long int64;

const int nmax=1000000;

int v[nmax+1];

int main(){
    int n;
    int64 sol;

    assert(freopen("fractii.in", "r", stdin));
    assert(scanf(" %d ", &n));
    fclose(stdin);

    for (int i=1; i<=n;++i){
        v[i]=i;
    }
    for (int i=2; i<=n; ++i){
        if (v[i]==i){
            for (int j=i; j<=n; j+=i){
                v[j]=v[j]/i*(i-1);
            }
        }
        fprintf(stderr, "%d ", v[i]);
    }

    sol=1;
    for (int i=2; i<=n; ++i){
        sol+=2*v[i];
    }

    assert(freopen("fractii.out", "w", stdout));
    printf("%lld\n", sol);
    fclose(stdout);   

    return 0;
}