Pagini recente » Cod sursa (job #472613) | Cod sursa (job #2726536) | Cod sursa (job #2448384) | Cod sursa (job #986684) | Cod sursa (job #2225696)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
long long n,i,j,k,rez,sq,nnr,a;
long long nd,dv[1000005],c[1000005],nr[100000],s[1000005];
bool pr[1000005];
int main () {
fin>>n;
sq=sqrt(n);
for(i=2;i<=n;i++)
if(pr[i]==0&&i<=sq)
{
nr[++nnr]=i;
c[i]=1;
for(j=i+i;j<=n;j+=i)
pr[j]=1;
}
for(i=sq+1;i<=n;i++)
if(pr[i]==0)
nr[++nnr]=i,c[i]=1;
for(i=2;i<=n;i++)
if(c[i]||!pr[i])
{
dv[++nd]=i;
for(j=1;i*nr[j]<=n;j++)
if(i%nr[j]>0)
c[i*nr[j]]++;
}
for(i=1;i<=nd;i++)
{
a=dv[i];
if(c[a]%2==1) k=1;
else k=-1;
for(j=a;j<=n;j+=a)
s[j]+=k*j/a;
}
for(i=2;i<=n;i++)
rez+=i-s[i];
fout<<rez*2+1<<"\n";
}