Cod sursa(job #1490905)

Utilizator armandpredaPreda Armand armandpreda Data 24 septembrie 2015 13:55:24
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <fstream>

using namespace std;

ifstream fin("fractii.in");
ofstream fout("fractii.out");

const int LIM=1000;
int n, eul[LIM+1];
void euler()
{
    for(int i=1; i<=LIM; i+=2) eul[i]=i;
    for(int i=2; i<=LIM; i+=2) eul[i]=i/2;
    for(int i=3; i<=LIM; i+=2)
        if(eul[i]==i)
            for(int j=i; j<=LIM; j+=i)
                eul[j]=eul[j]/i*(i-1);
}
int main()
{
    euler();
    fin>>n;
    long long ans=0;
    for(int i=1; i<=n; ++i)
        ans+=1ll*2*eul[i];
    fout<<ans-1;
    return 0;
}