Pagini recente » Cod sursa (job #304193) | Cod sursa (job #653216) | Cod sursa (job #869303) | Cod sursa (job #1598212) | Cod sursa (job #2924301)
#include<bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
long long far[1000005],phi[1000005];
int main()
{
long long n;
fin>>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;
phi[i]=i-1;
}
for(int j=0;j<=far[i] && primes[j]*i<=n;j++)
{
far[primes[j]*i]=j;
phi[primes[j]*i]=phi[i]*primes[j];
if(j<far[i])
phi[primes[j]*i]-=phi[i];
}
}
for(int i=2;i<=n;i++)
ans+=phi[i];
fout<<2*ans+1;
return 0;
}