Cod sursa(job #2461551)

Utilizator GabyD002Dobrita Gabriel GabyD002 Data 25 septembrie 2019 20:21:16
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define NM 1000005
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");

int n,phi[NM];
bool fr[NM];

void Read();
void Solve();
void Write();

int main()
{   Read();
    Solve();
    Write();
    f.close();
    g.close();
    return 0;
}

void Read()
{   f>>n;
    for(int i=1; i<NM; i++)
        phi[i]=1;
}

void Solve()
{   for(int i=2; i<=n/2; i++)
        if(!fr[i])
            for(int j=2; i*j<=n; j++)
            {   fr[i*j]=true;
                int p=1;
                for(int aux=i*j; aux%i==0; aux/=i)
                    p*=i;
                p/=i;
                phi[i*j]*=(i-1)*(p);

            }
}

void Write()
{   long long sum=0;
    for(int i=2; i<=n; i++)
        sum=1LL*(sum+(phi[i]==1 ? i-1 : phi[i]));
    g<<sum*2+1;
}