Pagini recente » Cod sursa (job #3120451) | Cod sursa (job #2720870) | Cod sursa (job #2166674) | Cod sursa (job #3222615) | Cod sursa (job #149322)
Cod sursa(job #149322)
#include<stdio.h>
#define Nmax 500003
FILE *fin=freopen("fractii.in","r",stdin),
*fout=freopen("fractii.out","w",stdout);
char viz[Nmax];
long prim[80000],nrp,n;
void ciur()
{
for(int i=2;i<=Nmax;i++)
if(!viz[i])
{
prim[++nrp]=i;
for(int j=i+i;j<=Nmax;j+=i)
viz[j]=1;
}
}
long long tot(int k)
{
long long nr=k, nm=1;
if(viz[k]==0) return k-1;
for(int i=1;prim[i]*2<=k;i++)
if(k%prim[i]==0)
{
nr*=(prim[i]-1);
nm*=prim[i];
}
return nr/nm;
}
int main()
{
ciur();
long long s=0;
scanf("%d",&n);
for(int i=2;i<=n;i++)
s+=tot(i);
printf("%lld",2*s+1);
return 0;
}