Для того чтобы проверить, как её ученики умеют считать, Мария Ивановна каждый год задаёт им на дом одну и ту же задачу – для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A. От года к году и от ученика к ученику меняется только число A.
Вы решили помочь будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу.
Входные данные
Во входном файле содержится единственное число A (1 ≤ A≤ 1000000000 – на всякий случай; вдруг Мария Ивановна задаст большое число, чтобы "завалить" кого-нибудь…).
Выходные данные
В выходной файл вывести единственное число N.

Лимит времени 1 секунда

Лимит использования памяти 64 MiB
Входные данные
Sample 1
8
Sample 2
13
Выходные данные
Sample 1
4
Sample 2
13

10 Сен 2019 в 16:42
250 +1
0
Ответы
1

Пример решения на Python:

A = int(input())
def get_min_N(A):
if A == 1:
return 1
for N in range(2, A+1):
n_pow_n = N
for _ in range(1, N):
n_pow_n *= N
if n_pow_n % A == 0:
return N
return A
print(get_min_N(A))

Сначала считываем число A. Затем определяем функцию get_min_N, которая принимает число A и возвращает минимальное натуральное N удовлетворяющее условиям задачи.
Функция проверяет все значения N от 2 до A включительно, и для каждого значения N вычисляет N в степени N. Если результат делится на A, то функция возвращает значение N. Если ни одно значение N не удовлетворяет условиям, функция возвращает A.

После этого вызываем функцию с введенным значением A и выводим результат.

20 Апр 2024 в 01:54
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир