public class Euler518 {

    static class OddPrimeTable {
        byte[] oddIsPrime;

        OddPrimeTable(int limit) {
            int size = (limit + 1) / 2;
            oddIsPrime = new byte[size];
            for (int i = 0; i < size; i++)
                oddIsPrime[i] = 1;
            if (size > 0)
                oddIsPrime[0] = 0;

            int maxI = size - 1;
            for (int i = 1; (long) (2 * i + 1) * (2 * i + 1) <= maxI * 2 + 1; i++) {
                if (oddIsPrime[i] == 1) {
                    int p = 2 * i + 1;
                    int start = (p * p) >> 1;
                    for (int j = start; j <= maxI; j += p) {
                        oddIsPrime[j] = 0;
                    }
                }
            }
        }

        boolean isPrime(int x) {
            if (x == 2)
                return true;
            if (x < 2 || (x & 1) == 0)
                return false;
            return oddIsPrime[x >> 1] == 1;
        }
    }

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

    static long solve(int n) {
        OddPrimeTable primeTable = new OddPrimeTable(n);
        int limit = (int) Math.sqrt(n);

        long sum = 0;
        for (int v = 2; v <= limit; v++) {
            int v2 = v * v;
            int maxD = n / v2;
            boolean vEven = (v % 2 == 0);

            for (int u = 1; u < v; u++) {
                if (gcd(u, v) != 1)
                    continue;

                int u2 = u * u;
                int uv = u * v;

                if (u == 1 && vEven && maxD >= 3) {
                    int d = 3;
                    int a = u2 * d - 1;
                    int b = uv * d - 1;
                    int c = v2 * d - 1;
                    if (primeTable.isPrime(a) && primeTable.isPrime(b) && primeTable.isPrime(c)) {
                        sum += (long) (a + b + c);
                    }
                }

                for (int d = 2; d <= maxD; d += 2) {
                    int a = u2 * d - 1;
                    int b = uv * d - 1;
                    int c = v2 * d - 1;
                    if (primeTable.isPrime(a) && primeTable.isPrime(b) && primeTable.isPrime(c)) {
                        sum += (long) (a + b + c);
                    }
                }
            }
        }
        return sum;
    }

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