Найдите наименьшее K, такое что K! делится на N без остатка.

Найдите меньшее K, такое что K! делится на N без остатка. K!=1*2*3...*(K-1)*K
Форма входа данных : в первой и единственной строке дано число N (1= Формат выходных данных: Выведите меньшее число K факториал которого делится на N.

Образцы A.in = 4 A.out = 4 A.in = 8 A.out = 4

Задать свой вопрос
1 ответ
Навскидку можно сделать так: заместо самих чисел беречь их разложения на обыкновенные множители. Например, вместо N=84=2^2*3^1*5^0*7^1*11^0... будет массив Na=(2, 1, 0, 1, 0, 0,...). Еще таковой же массив отводишь под сами простые числа. После получения разложения N начинается цикл: берем еще одно число i и из Na вычитаем его разложение (пробегаемся по обычным числам, если i делится, то разделяем и вычитаем 1 в соотв. элементе массива, пробуем снова). Цикл кончается, когда все элементы Na отрицательны либо равны 0, это означает, что факториал заключительного i содержит все обыкновенные числа в степени не меньшей чем N, т.е. i! делится на N.
Неувязка в том, что неясно, каких размеров должен быть массив. Есть ли ограничения на N? Например, если N всегда не больше 10000, то количество обычных чисел и сами числа можно константами загнать и т.д. Распиши условия, тогда попробую приблизительно код написать.
, оставишь ответ?
Имя:*
E-Mail:


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

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

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

Войти на сайт