Ряд состоит из естественных чисел от 1 до n. Задается натуральное

Ряд состоит из естественных чисел от 1 до n. Задается естественное число k и производится один или несколько шагов по удалению каждого k-ого числа в этом ряду. На следующем шаге оставшиеся числа просматриваются в вырастающем порядке, и каждое k-е число удаляется. Если после очередного шага осталось меньше k чисел, то процесс удаления чисел заканчивается. Нужно найти, на каком шаге будет удалено число n, или узнать, что оно не будет удалено до завершения процесса.
К примеру, пусть n = 13, k = 2.
На первом шаге будут удалены числа 2, 4, 6, 8, 10 и 12, останутся числа 1, 3, 5, 7, 9, 11 и 13.
На втором шаге будут удалены числа 3, 7 и 11, останутся числа 1, 5, 9 и 13.
На 3-ем шаге будут удалены числа 5 и 13, останутся числа 1 и 9.
На четвертом шаге будет удалено число 9, останется число 1. Так как осталось одно число, процесс завершается. Таким образом, число 13 будет удалено на 3-ем шаге.
Требуется написать программу, которая по данным числам n и k определяет, на каком шаге будет удалено число n.
Формат ввода
Первая строка входных данных содержит целое число n (3 n 10**18).
2-ая строчка входных данных содержит целое число k (2 k 100, k lt; n).
Формат вывода
Нужно вывести одно целое число номер шага, на котором будет удалено число n, либо число 0, если число nне будет удалено.
Пример 1
Ввод
Вывод
13
2
3
Пример 2
Ввод
Вывод
3
2
2

Задать свой вопрос
1 ответ

Для того, чтоб в последовательности из n элементов удалить заключительный методом вычеркивания каждого k-го элемента, n должно быть кратно k - это и есть условие удачного удаления. Запишем его в виде n mod k = 0, где mod - операция получения остатка целочисленного дробления n на k.

Если n не кратно k, то будут вычеркнуты [n / k] элементов последовательности. Тут [ ] - обозначение операция взятия целой доли числа (антье), введенное в математику К. Гауссом.

После вычеркивания [n / k] элементов, в последовательности остается n = n - [n / k] частей. Если повторять этот процесс, то либо на шаге m будет вычеркнут последний элемент, либо количество частей станет меньше k.

Осмотрим приведенный в задании пример.

n=13, k=2

n mod k

, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт