Или заучите полдесятка (кажется их не больше практически полезных) формул преобразования логарифмов: сложение/вычитание, умножение/деление на число/константу, замена основания, определение. Вроде и всё.
Для оценки погрешностей полезно знать производные логарифма и экспоненты.
primepi считает очень медленно, для PARI/GP в разы быстрее будет тот финт что я применил выше: посчитать количество простых в диапазоне командой
forprime(p=a,b,n++) (для миллионного интервала после

выполнялся 6 секунд) и сравнить с разностью

(которую тоже неплохо бы математически упростить). Правда тут надо аккуратнее с количеством значащих цифр, если их не хватит можно получить бред (или отрицательное число, или ноль). Но PARI/GP позволяет указывать желаемую точность вычислений (командой
\p КоличествоЦифр), для чисел

пришлось ставить не меньше 100 цифр (т.к.

, а надо чтобы была точной младшая цифра целой части). Ну это чисто от лени преобразовать выражение к нормальному виду чтобы не вычитать два близких стозначных числа.