Желательно на Питоне и на С++! Степень
Для того чтобы проверить, как её ученики умеют считать, Мария Ивановна каждый год задаёт им на дом одну и ту же задачу — для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A. От года к году и от ученика к ученику меняется только число A.

Вы решили будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу.

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

Во входном файле содержится единственное число A (1≤A≤109 — на всякий случай; вдруг Мария Ивановна задаст большое число, чтобы «завалить» кого-нибудь…).

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

В выходной файл вывести единственное число N.

Примеры
Ввод
8
Вывод
4
Ввод
1
Вывод
1
Те ответы, которые расположены на киберфоруме не принимает! Пишет, что программа долго выполняется

123Emre 123Emre    1   05.06.2020 19:27    42

Ответы
anastasija193p07d7p anastasija193p07d7p  05.06.2020 19:28

Комментарий смело удаляй!

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
freight1337 freight1337  16.01.2024 09:45
Хорошо, давайте начнем с написания программы на языке Python. Для решения этой задачи нам понадобятся циклы и математические операции. Вот код программы:

```python
def find_degree(a):
n = 1
while True:
if n**n % a == 0:
return n
n += 1

# ввод числа A
a = int(input())

# вызов функции для поиска степени N
result = find_degree(a)

# вывод ответа
print(result)
```

Теперь давайте разберемся с работой программы.

1. Мы создаем функцию `find_degree(a)`, которая будет искать степень N для числа A. Внутри функции мы инициализируем переменную `n` со значением 1 и начинаем цикл `while True`.

2. На каждой итерации цикла мы проверяем, делится ли `n` в степени `n` на `a` без остатка. Для этого используем оператор `%`, который возвращает остаток от деления. Если остаток равен 0, значит найдено нужное значение степени N, и мы возвращаем `n`.

3. Если остаток от деления не равен 0, мы увеличиваем значение `n` на 1 и повторяем проверку до тех пор, пока не найдем нужную степень N.

4. После определения функции `find_degree(a)` мы считываем входные данные - значение числа A с помощью функции `input()`. Функция `int()` используется для преобразования строки в целое число.

5. Затем мы вызываем функцию `find_degree(a)` и сохраняем результат в переменную `result`.

6. Наконец, мы выводим полученный результат с помощью функции `print(result)`.

Теперь рассмотрим решение на языке C++. Вот код программы:

```cpp
#include
using namespace std;

int findDegree(int a) {
int n = 1;
while (true) {
if (pow(n, n) % a == 0) {
return n;
}
n++;
}
}

int main() {
// ввод числа A
int a;
cin >> a;

// вызов функции для поиска степени N
int result = findDegree(a);

// вывод ответа
cout << result << endl;

return 0;
}
```

Давайте разберемся с работой программы на C++.

1. Мы создаем функцию `findDegree(a)`, которая будет искать степень N для числа A. Внутри функции мы инициализируем переменную `n` со значением 1 и начинаем цикл `while (true)`.

2. На каждой итерации цикла мы проверяем, делится ли результат функции `pow(n, n)` (возведение числа `n` в степень `n`) на `a` без остатка. Для возведения в степень мы используем библиотечную функцию `pow()`. Если остаток равен 0, значит найдено нужное значение степени N, и мы возвращаем `n`.

3. Если остаток от деления не равен 0, мы увеличиваем значение `n` на 1 и повторяем проверку до тех пор, пока не найдем нужную степень N.

4. В функции `main()` мы считываем входные данные - значение числа A с помощью оператора ввода `cin >> a`.

5. Затем мы вызываем функцию `findDegree(a)` и сохраняем результат в переменную `result`.

6. Наконец, мы выводим полученный результат с помощью оператора вывода `cout << result << endl`.

Надеюсь, эти решения помогут вам решить задачу о степени! Если у вас есть еще вопросы, не стесняйтесь задавать.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика