Срочно на с++, даю 100 баллов. Для того чтобы проверить, как её ученики умеют считать, Мария
Ивановна каждый год задаёт им на дом одну и ту же задачу — для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A. От года к году и от ученика к ученику меняется только число A. Вы решили помочь будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу. Входные данные Во входных данных содержится единственное число A (1≤A≤109 — на всякий случай; вдруг Мария Ивановна задаст большое число, чтобы «завалить» кого-нибудь…). Выходные данные Выведите число N. Примеры Ввод Вывод 1 1 8 4Ответы на вопрос
Ответ:
#include <iostream>
#include<cmath>
using namespace std;
int main() {
int A;
int N = 1;
cin >> A;
for (N = 1; (int(pow(N, N))) < sqrt(A); N++) {
if(int(pow(N, N)) % A == 0){
break;
}
}
cout << N;
return 0;
}
Объяснение:
(в программе не реализуется проверка введенных данных)
(согласно условию предполагается, что такое число N существует)
- #include <iostream> - подключаем стандартную библиотеку для работы с консолью
- #include<cmath> - подключаем библиотек для работы с математическими функциями
Создаем переменную A в строчке - int A, аналогично создаем переменную N (int N = 1) и тут же присваиваем ей значение 1, так как по условию N - натуральное число.
Вводим данную переменную с консоли помощью строчки cin >> A;
Создаем цикл в котором будем искать переменную N. Рассмотрим детальнее начальные условия цикла:
- for (N = 1; (int(pow(N, N))) < sqrt(A); N++)
Так как переменная N уже создана, то начинаем цикл с N = 1.
Потом зададим в каком диапазоне изменяется N. Число N в степени N не может превышать числа A, а более точная математическая оценка говорит, что все числа начиная от √A не могут быть делителями числа A, поэтому:
- (int(pow(N, N))) < sqrt(A)
Операция pow(N, N) возводит число N в степень N и возвращает число типа double.
Так же при возведении в степень будет возвращено значение типа double, которое для корректной работы программы нужно преобразовать в int, поэтому используем приведение типа
int(pow(N, N)).
Счетчик цикла N увеличиваем (N++) пока не выйдем за пределы цикла.
Тело цикла:
- if(int(pow(N, N)) % A == 0){
break;
}
Если остаток от деления (%) числа pow(N, N) равен нулю, то это означает, что деление произошло нацело, тогда мы попадаем в тело условия и останавливаем цикл оператором break;
cout << N; - выводим число N
#SPJ3
Задача на поиск минимального числа N
Мария Ивановна каждый год задает своим ученикам одну и ту же задачу: для заданного натурального числа A найти минимальное натуральное число N такое, что N в степени N (N, умноженное на себя N раз) делится на A. Число A может меняться от года к году и от ученика к ученику.
Для решения этой задачи вам необходимо написать программу. Входные данные представляют собой единственное число A (1≤A≤109). Ваша программа должна вывести число N.
Решение задачи
Для решения этой задачи можно использовать перебор. Начнем с числа N = 1 и будем увеличивать его до тех пор, пока N в степени N не будет делиться на A. Когда найдем такое число N, мы можем остановиться и вывести его.
Вот пример решения на языке Python:
```python def find_min_N(A): N = 1 while True: if N ** N % A == 0: return N N += 1
# Ввод числа A A = int(input())
# Вызов функции для поиска минимального числа N min_N = find_min_N(A)
# Вывод результата print(min_N) ```
Примеры
Ввод: ``` 1 ``` Вывод: ``` 1 ```
Ввод: ``` 8 ``` Вывод: ``` 4 ```
Пожалуйста, попробуйте использовать этот код для решения задачи. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
