С++ Степень! Даю 25 баллов, только на С++! есть код прошедший 12 тестов из 15(см. текстовый файл)
Для того чтобы проверить, как её ученики умеют считать, Мария Ивановна каждый год задаёт им на дом одну и ту же задачу — для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A. От года к году и от ученика к ученику меняется только число A. Вы решили помочь будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу. Входные данные Во входных данных содержится единственное число A (1≤A≤10^9 — на всякий случай; вдруг Мария Ивановна задаст большое число, чтобы «завалить» кого-нибудь…). Выходные данные Выведите число N. Примеры Ввод Вывод 1 1 8 4Ответы на вопрос
Тесты проваливаются на степенях двойки (A=2^n) при n >= 5
Напишу два решения. Первое просто показывает алгоритм, но имеет ограничение на N (результат не может быть больше 15 из-за переполнения unsigned long long)
Второе по своей сути такое же, но не имеет ограничений. Однако для этого понадобится особый тип данных big_integer. Вторую реализацию прикрепил к ответу в виде текстового файла из-за ограничения на количество символов в ответе.
// первое решение
#include <iostream>
typedef unsigned long long ulong;
ulong pow(int num, int pow);
int main()
{
int a = 0;
std::cin >> a;
int n = 0;
while (n++ <= a)
{
if (pow(n, n) % a == 0)
{
std::cout << n << std::endl;
break;
}
}
return 0;
}
ulong pow(int num, int pow)
{
ulong res = num;
for (int i = 1; i < pow; ++i)
res *= num;
return res;
}

Из предоставленного текста я понимаю, что вам нужно написать программу на языке C++, которая решает задачу, связанную со степенью числа. Задача заключается в том, чтобы найти минимальное натуральное число N, такое, что N в степени N (N, умноженное на себя N раз) делится на заданное число A.
Для решения этой задачи вам потребуется использовать циклы и условные операторы. Входные данные представляют собой единственное число A (1≤A≤10^9). Вам нужно вывести число N, которое удовлетворяет условию задачи.
Вот пример решения на языке C++:
```cpp
#include
int main() { int A; std::cin >> A;
int N = 1; while (true) { int result = 1; for (int i = 0; i < N; i++) { result *= N; } if (result % A == 0) { std::cout << N << std::endl; break; } N++; }
return 0; } ```
Эта программа считывает число A с помощью функции `std::cin`, а затем использует цикл `while` для поиска числа N, удовлетворяющего условию задачи. Внутри цикла используется вложенный цикл `for`, чтобы вычислить N в степени N. Затем проверяется, делится ли результат на A с помощью оператора `%`. Если делится, то программа выводит значение N с помощью функции `std::cout` и завершает цикл с помощью оператора `break`.
Примеры:
Ввод: ``` 1 ``` Вывод: ``` 1 ```
Ввод: ``` 8 ``` Вывод: ``` 4 ```
Пожалуйста, попробуйте использовать этот код и дайте мне знать, если у вас возникнут какие-либо вопросы.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
