Можно источник задачи?
Я знаю решение за

и вроде как за

Это задача 415 из Project Euler. А что у Вас за решение?
Ключевая идея - считать от обратного, то-есть от общего числа отрезков в квадрате отнять количество тех, которые содержат в себе ровно 2 целочисленные точки. Я, кстати, очень удивился, что никто её не предложил, а полезли все в страшные дебри=)
И так, с общим числом отрезков понятно:

.
Нужно найти количество отрезков с двумя точками.
Заметим, что каждый такой отрезок задаётся вектором

, где

и

- взаимно простые числа, одно из них, например,

может быть отрицательным. Также, очевидно, что для каждого такого вектора существует

отрезков в квадрате, содержащих ровно 2 точки.
И вот мы уже получили решение за

или за

- перебрать все пары взаимно простых, ну и посчитать искомое количество.
Теперь нужно ускорить этот подсчёт, чтоб не перебирать все пары.
Возьмём число

, по известному свойству, количество чисел, взаимно простых с

и меньших его равно

. А их сумма равна:

. Таким образом, нам осталось просуммировать

. (и не забыть учесть единичные отрезки, и пары с отрицательны

).
А это можно сделать за

, если перебирать

и считать

в лоб, либо если запустить рекурсию, и получать все натуральные числа из простых, что тем самым даст возможность поддерживать значение

и изменять на каждом шаге за

. Итого

. Но, увы, тут возникает сложность для

, ибо мы не сможем получить достаточно большие простые числа.
Конечно, алгоритм ещё можно попробовать улучшить, или даже свернуть формулу.
п.с.
Вот, как пример,

:
http://ideone.com/OzPUrRп.с2
Прочитал я ту задачу, как-то там ещё сложнее, чем то, что вы написали=)