Cod sursa(job #171313)

Utilizator vanila_CPPIonescu Victor Cristian vanila_CPP Data 3 aprilie 2008 23:48:12
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#define FIN "fractii.in"
#define FOUT "fractii.out"
#define MAX_N 1000000
using namespace std;
typedef long long it;
it n,phi[MAX_N+1];

int main(void){
        freopen(FIN,"rt",stdin);
        freopen(FOUT,"wt",stdout);
        scanf("%lld\n",&n);
        fclose(stdin);
        for (it i=1;i<=n;i++){
                phi[i]=i-1;
        }
        for (it i=2;i<n;i++){
                it current=i;
                while (current+i<=n){
                        current+=i;
                        phi[current]-=phi[i];
                }
        }
        it rez=1;
        for (int i=2;i<=n;i++){
                rez+=2*phi[i];
        }
        printf("%lld\n",rez);
        fclose(stdout);
        return 0;
}