Pagini recente » Cod sursa (job #2695370) | Cod sursa (job #1881713) | Cod sursa (job #2365195) | Cod sursa (job #2140875) | Cod sursa (job #39090)
Cod sursa(job #39090)
#include<stdio.h>
#include<string.h>
#include<math.h>
int n,i,j,k;
long long nr;
char prim[1001];
int tot(int n)
{int nr=n;
if(prim[n]) return n-1;
if(sqrt(n)==(int)sqrt(n)) return sqrt(n)*tot(sqrt(n));
for(int i=2;i<=n;i++)
if(prim[i]&&n%i==0) {nr=nr-nr/i;n=n/i; }
return nr;}
int main()
{freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
nr=1;
memset(prim,1,n+1);
for(i=2;i<=n;i++)
if(prim[i])
for(j=2*i;j<=n;j=j+i)
prim[j]=0;
nr=1;
for(i=2;i<=n;i++)
nr=nr+2*tot(i);
printf("%lld",nr);
fclose(stdout);
return 0;}