import java.util.*;

public class Euler141 {
    static boolean isSquare(long v) {
        long r = (long) Math.sqrt((double) v);
        return r * r == v || (r + 1) * (r + 1) == v;
    }

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

    public static void main(String[] args) {
        long limit = 1000000000000L;
        Set<Long> set = new TreeSet<>();
        for (long a = 1; a * a <= limit; a++)
            for (long b = 1; b < a && a * a * b * b <= limit; b++) {
                if (gcd((int) a, (int) b) != 1)
                    continue;
                for (long k = 1; k * k * a * a * b * b <= limit; k++) {
                    long c1 = k * a * a * k * b * b + k * a * b;
                    if (c1 <= limit && isSquare(c1))
                        set.add(c1);
                    long c2 = k * a * a * k * a * b + k * b * b;
                    if (c2 <= limit && isSquare(c2))
                        set.add(c2);
                }
            }
        long sum = 0;
        for (long v : set)
            sum += v;
        System.out.println(sum);
    }
}
