Для того чтобы проверить, как её ученики умеют считать, Мария Ивановна каждый год задаёт им на дом одну и ту же задачу – для заданного натурального 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
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 и выводим результат.
Пример решения на 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 и выводим результат.