Если число не является степенью числа 2, то вывести об этом сообщение - Free Pascal
Формулировка задачи:
Дано целое число N больше 0, являющееся степенью числа 2, F=2 в степени k. Найти целое k - показатель степени. Если число не является степенью числа 2, то вывести об этом сообщение.
Решение задачи: «Если число не является степенью числа 2, то вывести об этом сообщение»
textual
Листинг программы
var n,k,a:integer;
begin
repeat
write('n>0 n=');
readln(n);
until n>0;
a:=1;
k:=0;
while a<n do
begin
a:=a*2;
inc(k);
end;
if a<>n then write('Число ',n,' не является степенью 2')
else write('Число ',n,' это 2 в степени ',k)
end.
Объяснение кода листинга программы
- Ввод числа n с клавиатуры до тех пор, пока не будет введено положительное число.
- Инициализация переменных a и k значением 1 и 0 соответственно.
- Цикл while, выполняющийся до тех пор, пока значение переменной a меньше n.
- Умножение значения переменной a на 2 и увеличение значения переменной k на 1 внутри цикла while.
- Проверка после цикла while, если значение переменной a не равно n, то выводится сообщение, что число не является степенью 2.
- Если значение переменной a равно n, то выводится сообщение, что число является 2 в степени k.