Олимпиадный тренинг

Задача . B. Вычитание делителя


Задано целое число \(n\). К нему применяется следующий алгоритм:

  1. если \(n = 0\), то завершить алгоритм;
  2. найти наименьший простой делитель \(d\) числа \(n\);
  3. вычесть \(d\) из \(n\) и перейти к шагу \(1\).

Определите количество вычитаний, которые совершит алгоритм.

Входные данные

В единственной строке записано одно целое число \(n\) (\(2 \le n \le 10^{10}\)).

Выходные данные

Выведите единственное целое число — количество вычитаний, которые совершит алгоритм.

Примечание

В первом примере \(5\) — это наименьший простой делитель, поэтому он сразу вычтется, приведя число к \(0\).

Во втором примере \(2\) — наименьший простой делитель на обоих шагах.


Примеры
Входные данныеВыходные данные
1 5
1
2 4
2

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя