Алгоритм
.Чтобы определить, является ли положительное целое число n совершенной степенью, используется алгоритм, выполняющий двоичный поиск основания совершенной степени.
Алгоритм начинается с показателя степени, равного 2, и продолжает перебирать в цикле все возрастающие числа, пока не найдет идеальную степень или не выяснит, что таковой не существует. Вот подробное описание шагов алгоритма.
1. Принимается целое положительное число n.
2. Показателю степени power присваивается значение 2.
3. Запускается цикл while True:.
4. Если 2 ** power > n, возвращается False.
5. Инициализируются переменные low = 2 и high = n.
6. Пока low меньше или равно high:
1) переменной mid присваивается результат деления (low + high) на 2 с округлением вниз;
2) переменной guess присваивается значение mid, возведенное в степень power;
3) если guess равно n, верните True;
4) иначе, если guess меньше n, переменной low присваивается значение mid + 1;
5) иначе переменной high присваивается значение mid – 1.
7. Если base ** power равно n, то возвращается True.
8. Значение power увеличивается на 1.