#include #include #define MAX 200090 long int Tot[MAX]; /* Calculated Euler totients */ long int SumTot[MAX]; int main() { long int n, i, j; scanf("%ld", &n); /* Initialize */ memset(SumTot, 0, (n+1)*sizeof(long int)); Tot[0] = Tot[1] = 0; for (i=2; i<=n; i++) Tot[i] = i; /* Apply Sieve to non-primes alone */ for (i = 2; i<=n; i++){ if (Tot[i] == i) { for (j = i; j <= n; j += i) { Tot[j] = Tot[j]*(i-1)/i; } } SumTot[i] = SumTot[i-1] + Tot[i]; } printf("%ld\n", SumTot[n]-1); return 0; }