Cod sursa(job #247563)
Utilizator | Data | 23 ianuarie 2009 12:18:55 | |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<stdio.h>
#define N 1000001
int n,v[N],s;
void euler()
{
int i,j;
for( i=2 ; i<=N ; ++i )
v[i]=i;
for( i=2 ; i<=N ; ++i )
if( v[i]==i )
for(j=i ; j<=N ; j+=i )
v[j] = ( i - 1 ) * v[j] / i;
}
void calcul()
{
s=1;
int i;
for( i=2 ; i<=n ; ++i )
s+= 2 * v[i];
}
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
euler();
calcul();
printf("%d",s);
return 0;
}