Cod sursa(job #2663738)

Utilizator pctirziuTirziu Petre pctirziu Data 27 octombrie 2020 10:14:09
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;
ifstream cin("fractii.in");
ofstream cout("fractii.out");
int phi[1000100];
long long sum[1000010];
void ciur_phi(int n)
{
    int i,j;
    phi[1]=1;
    for(i=2; i<=n; i+=2)
        phi[i]=i/2;
    for(i=3; i<=n; i+=2)
        if(!phi[i])
        {
            phi[i]=i-1;
            for(j=(i<<1); j<=n; j+=i)
            {
                if(phi[j]==0)
                    phi[j]=j;
                phi[j]=phi[j]/i*(i-1);
            }
        }
}
void sume_partiale(int n)
{
    int i;
    for(i=1;i<=n;i++)
        sum[i]=sum[i-1]+phi[i];
}
int main()
{
    int n;
    cin>>n;
    ciur_phi(n);
    sume_partiale(n);
    cout<<sum[n]*2-1;
    return 0;
}