Pagini recente » Cod sursa (job #254135) | Cod sursa (job #126243) | Cod sursa (job #580750) | Cod sursa (job #2342547) | Cod sursa (job #2781316)
#include <stdio.h>
#include <stdlib.h>
int phi[1000001];
int main() {
FILE *fin, *fout;
int n, i, j;
long long s;
fin = fopen( "fractii.in", "r" );
fscanf( fin, "%d", &n );
fclose( fin );
// n = suma de phi(d), pentru oricare d | n
// => phi(n) = n - suma de phi(d), d | n, d < n
// sau phi(n) = n * ( produs de ( d - 1 ) / d ), unde d factor prim din descompunerea lui n
for ( i = 1; i <= n; i++ )
phi[i] = i;
s = 0;
for ( i = 2; i <= n; i++ ) {
if( phi[i] == i ) {
for ( j = i; j <= n; j+=i )
phi[j] = phi[j] / i * ( i - 1 );
}
s += phi[i];
}
fout = fopen( "fractii.out", "w" );
fprintf( fout, "%lld", 2 * s + 1 );
fclose( fout );
return 0;
}