Cod sursa(job #2924154)

Utilizator mihnea.cazan15mihnea cazan mihnea.cazan15 Data 26 septembrie 2022 12:05:53
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;
long long far[1000005],euler[1000005];
int main()
{
    long long  n;
    cin>>n;
    long long ans=0;
    vector<long long> primes;
    memset(far,-1,sizeof(far));
    for(int i=2;i<=n;i++)
    {
        if(far[i]==-1)
        {
           primes.push_back(i);
           far[i]=primes.size()-1;
        }
        for(int j=0;j<=far[i] && i*primes[j]<=n;j++)
        {
           far[primes[j]*i]=j;
           if(j==far[i])
              euler[primes[j]*i]=euler[i]*primes[j];
           else
               euler[primes[j]*i]=euler[i]*(primes[j]-1);
        }
    }
    for(int i=1;i<=n;i++)
        ans+=euler[i];
    cout<<ans;
    return 0;
}