import java.math.BigInteger;

public class Euler531 {
    private static long[] extGcd(long a, long b) {
        if (b == 0) {
            return new long[] { a, 1, 0 };
        }
        long[] res = extGcd(b, a % b);
        long g = res[0];
        long x1 = res[1];
        long y1 = res[2];

        long x = y1;
        long y = x1 - (a / b) * y1;
        return new long[] { g, x, y };
    }

    private static long gcd(long a, long b) {
        while (b != 0) {
            long temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }

    private static long crtMinNonneg(long a, long n, long b, long m) {
        long g = gcd(n, m);
        long diff = b - a;
        if (diff % g != 0) {
            return 0;
        }

        long n1 = n / g;
        long m1 = m / g;
        long rhs = diff / g;

        long[] ext = extGcd(n1, m1);
        long x = ext[1];

        long inv = x % m1;
        if (inv < 0) {
            inv += m1;
        }
        long rhsMod = rhs % m1;
        if (rhsMod < 0) {
            rhsMod += m1;
        }

        long t = (rhsMod * inv) % m1;
        return a + n * t;
    }

    private static int[] computePhiUpTo(int N) {
        int[] phi = new int[N + 1];
        for (int i = 0; i <= N; ++i) {
            phi[i] = i;
        }
        if (N >= 1) {
            phi[1] = 1;
        }
        for (int p = 2; p <= N; ++p) {
            if (phi[p] == p) {
                for (int m = p; m <= N; m += p) {
                    phi[m] -= phi[m] / p;
                }
            }
        }
        return phi;
    }

    public static void main(String[] args) {
        int L = 1000000;
        int R = 1005000;
        int N = R - L;

        int[] phiAll = computePhiUpTo(R - 1);

        long[] nvals = new long[N];
        long[] phis = new long[N];
        for (int i = 0; i < N; ++i) {
            int n = L + i;
            nvals[i] = n;
            phis[i] = phiAll[n];
        }

        BigInteger sum = BigInteger.ZERO;
        for (int i = 0; i < N; ++i) {
            long n = nvals[i];
            long a = phis[i];
            for (int j = i + 1; j < N; ++j) {
                long m = nvals[j];
                long b = phis[j];
                long x = crtMinNonneg(a, n, b, m);
                sum = sum.add(BigInteger.valueOf(x));
            }
        }
        System.out.println(sum.toString());
    }
}
