public class Euler136 {
    public static void main(String[] args) {
        int limit = 50000000;
        byte[] count = new byte[limit];
        for (int u = 1; u < limit; u++) {
            int vm = Math.min((limit - 1) / u, 3 * u - 1);
            if (vm < 1)
                continue;
            int v = ((-u) % 4 + 4) % 4;
            if (v == 0)
                v = 4;
            for (; v <= vm; v += 4) {
                int n = u * v;
                if (count[n] < 2)
                    count[n]++;
            }
        }
        int ans = 0;
        for (int n = 1; n < limit; n++)
            if (count[n] == 1)
                ans++;
        System.out.println(ans);
    }
}
