EduBrick

Бесквадратные числа

1100 мс · 256 МБ · всё или ничего

Число называется бесквадратным, если оно не делится ни на один квадрат простого. Посчитайте количество бесквадратных чисел на отрезке [1,N][1, N].

Считаем от противного: число не бесквадратно, если делится на p2p^2 хотя бы для одного простого pp. Включения-исключения по таким квадратам дают формулу через функцию Мёбиуса:

#{бесквадратных≤N}=∑d=1⌊N⌋μ(d)⌊Nd2⌋.\#\{\text{бесквадратных} \le N\} = \sum_{d=1}^{\lfloor\sqrt N\rfloor} \mu(d) \left\lfloor \frac{N}{d^2} \right\rfloor.

Здесь μ(d)\mu(d) равна нулю, если dd само не бесквадратно, и (−1)k(-1)^k, если dd — произведение kk различных простых. Считается она решетом за O(Nlog⁡log⁡N)O(\sqrt N \log \log \sqrt N).

Формат ввода

Одно число NN (1≤N≤10141 \le N \le 10^{14}).

Формат вывода

Выведите количество бесквадратных чисел на отрезке.

Примеры

ввод
10
вывод
7
ввод
1
вывод
1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.