Pagini recente » Cod sursa (job #354987) | Cod sursa (job #773006) | Cod sursa (job #1240066) | Cod sursa (job #351764) | Cod sursa (job #92292)
Cod sursa(job #92292)
//melc.
#include<stdio.h>
int n;
long long teta[1000001],rez; //totient
void citire()
{
freopen("fractii.in","r",stdin);
scanf("%d",&n);
fclose(stdin);
}
void euratostene()
{
int i,j;
teta[1]=1; teta[2]=1;
for (i=2;i<=n;i+=2) teta[i]=i>>1;
for (i=3;i<=n;i+=2) //ciuru
{
if (teta[i] == 0)
{
teta[i]=i-1;
for (j=i<<1;j<=n;j+=i)
if (teta[j]==0) teta[j]=j*(i-1)/i;
else teta[j]=teta[j]*(i-1)/i;
}
}
}
int main()
{
citire();
euratostene();
teta[1]=1;teta[2]=1;
for (int k=2;k<=n;k++)
rez+=teta[k];
rez=2*rez+1;
freopen("fractii.out","w",stdout);
printf("%lld \n",rez);
fclose(stdout);
return 0;
}