Вы хотите возвести данное число a в некоторую целочисленную степень n, но ваш
калькулятор умеет только перемножать числа. Например, вы можете вычислить a 2 = a × a,
затем вы можете вычислить a 3 = a 2 × a или a 4 = a 2 × a 2 . Вы можете по-разному
организовать вычисление значения a n . Например, вычислить a 5 можно за 4 умножения: 1) a 2
= a × a, 2) a 3 = a 2 × a, 3) a 4 = a 3 × a, 4) a 5 = a 4 × a. Но можно вычислить a 5 всего лишь за 3
умножения: 1) a 2 = a × a, 2) a 3 = a 2 × a, 3) a 5 = a 3 × a 2. Вам необходимо определить, за
какое минимальное число умножений можно вычислить следующие степени: 7, 15, 23, 63.
Вычисление каждой из этих степеней должно быть независимо от остальных, то есть при
вычислении 15-й степени нельзя использовать вычисления, проделанные ранее для
вычисления 7-й степени. Вы решаете четыре независимые задачи – за какое минимальное
число умножений можно вычислить 7-ю степень, 15-ю степень, 23-ю степень и 63-ю степень.
Выводит приглашение к вводу и возвращает значение типа integer, введенное с клавиатуры
function ArrRandom(n: integer := 10; a: integer := 0; b: integer := 100): array of integer;
Возвращает массив размера n, заполненный случайными целыми значениями
function Println(delim: string := ' '): sequence of T;
Выводит последовательность на экран, используя delim в качестве разделителя, и переходит на новую строку.
procedure Assert(cond: boolean; sourceFile: string := ''; line: integer := 0);
Выводит в специальном окне стек вызовов подпрограмм если условие не выполняется