Условие задачи: Дано натуральное число n. Выяснить является ли оно степенью числа 3.
Сложность : легкая .
Для начала стоит сказать что значит является степенью числа (любого) в нашем случае 3-х.
Небольшая табличка :
32 = 9
34 = 81
36 = 729
Вот числа 9 , 81 , 729 и будут называться степенью числа 3. Проще говоря это числа которые мы получаем когда какое-то число возводим в степень.
Решается задачи очень просто . Понадобиться нам две переменные : под число которое мы будем проверять и под число 3.
var n , number : integer; begin write('Введите число : '); readln(n); {вводим число} number := 3; {по условию задачи 3} end.
В решении нам поможет цикл while и оператор условия if then else. Пишем цикл :
while (number < n) do number := number * 3 ;
Посмотрим что у нас делает цикл :
Допустим мы ввели число 27 :
1-й проход цикла:
number := 3; n := 27; 3 < 27 do number := 3 * 3; {будет 9}
2-й проход цикла:
number := 9; n := 27; 9 < 27 do number := 9 * 3; {будет 27}
Третьего прохода у нас не будет, т.к. не выполняется условие. Цикл сделан для того чтобы возводить число в степень, т.е. приблизиться к числу , которое мы ввели.
Теперь условие :
if (number = n) then writeln('Число ', n , 'является степенью числа 3') else writeln('Число ', n , 'не является степенью числа 3');
Условие очень простое.
Весь код программы :
uses crt; var n , number : integer; begin clrscr; write('Введите число : '); readln(n); {вводим число} number := 3; {по условию задачи 3} while (number < n) do number := number * 3 ; if (number = n) then writeln('Число ', n , ' является степенью числа 3'); else writeln('Число ', n , ' не является степенью числа 3'); readln;{чтобы программа не закрывалась} end.