public class Euler675 {

    static final long MOD = 1000000087L;

    static int[] buildSpf(int n) {
        int[] spf = new int[n + 1];
        int[] primes = new int[n / 10 + 100];
        int pCount = 0;

        for (int i = 2; i <= n; ++i) {
            if (spf[i] == 0) {
                spf[i] = i;
                primes[pCount++] = i;
            }
            for (int j = 0; j < pCount; ++j) {
                int p = primes[j];
                long v = (long) p * i;
                if (v > n || p > spf[i]) {
                    break;
                }
                spf[(int) v] = p;
            }
        }
        return spf;
    }

    static int maxTermBound(int n) {
        int e2 = 0;
        for (int x = n; x > 0; x /= 2) {
            e2 += x / 2;
        }
        return 2 * e2 + 1;
    }

    static long[] buildInverses(int bound) {
        long[] inv = new long[bound + 1];
        inv[1] = 1L;
        for (int i = 2; i <= bound; ++i) {
            inv[i] = MOD - ((MOD / i) * inv[(int) (MOD % i)]) % MOD;
        }
        return inv;
    }

    static long solveN(int n) {
        int[] spf = buildSpf(n);
        int bound = maxTermBound(n);
        long[] inv = buildInverses(bound);

        int[] exp = new int[n + 1];

        long current = 1L;
        long ans = 0L;

        for (int i = 2; i <= n; ++i) {
            int x = i;
            while (x > 1) {
                int p = spf[x];
                int c = 0;
                do {
                    x /= p;
                    ++c;
                } while (x % p == 0);

                int oldTerm = 1 + 2 * exp[p];
                exp[p] += c;
                int newTerm = 1 + 2 * exp[p];

                current = (current * newTerm) % MOD;
                current = (current * inv[oldTerm]) % MOD;
            }

            ans += current;
            if (ans >= MOD) {
                ans -= MOD;
            }
        }

        return ans;
    }

    public static String solve() {
        long ans = solveN(10000000);
        return Long.toString(ans);
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
