Поликарп и его коллеги празднуют завершение работы над инновационной системой защиты от кибератак. Над системой трудилось множество людей, Поликарп был ответственным за криптографическую часть. Одним из алгоритмов, разработанных им, является поиск случайного простого числа, не превосходящего N. Напомним, что простым числом является число, имеющее ровно два различных делителя — единица и само число.
Алгоритм поиска простого числа, написанный Поликарпом, выглядит так:
Проверку того, является ли число x простым, Поликарп реализовал отдельно. Он пользовался тем, что для составного числа всегда существует делитель, не превосходящий квадратного корня из x и при этом отличный от единицы. Это позволяет сэкономить вычисления.
Алгоритм проверки реализован следующим образом:
Но сегодня Поликарп не мог уснуть. Его беспокоила мысль о том, что его алгоритм поиска может работать вечно! Или хотябы просто долго. А ведь это ставит под угрозу работу их системы.
Самой тяжёлой операцией Поликарп считает деление в проверке на простоту на третьем шаге. Посчитайте математическое ожидание количества этих делений по заданному N.
В первой строке содержится целое число T — количество тестовых примеров (1 ≤ T ≤ 105).
В каждой из следующих T строк содержится один тестовый пример — целое число N (2 ≤ N ≤ 107).
На каждый тест выведите ответ в отдельной строке в виде несократимой дроби.
6
2
3
4
5
6
10
0/1
0/1
1/2
2/3
1/1
2/1