Найти тройку последовательных натуральных чисел - Pascal
Формулировка задачи:
Даны натуральные числа N и M. Найти тройку последовательных натуральных чисел на промежутке [1; M], произведение которых равна N. Предусмотреть ответ "последовательность не найдена".
Решение задачи: «Найти тройку последовательных натуральных чисел»
textual
Листинг программы
var n, m, k: integer;
begin
repeat
write('n > 0; n = ');
readln(n)
until n > 0;
repeat
write('m > 0; m = ');
readln(m)
until m > 0;
k := round(exp(ln(n) / 3));
if (k + 1 > m) or ((k - 1) * k * (k + 1) <> n)
then write('Последовательность не найдена')
else write(k - 1, ' * ', k, ' * ', k + 1, ' = ', n);
readln
end.
Объяснение кода листинга программы
- Объявляются три целочисленные переменные
n,mиk. - Вводится значение переменной
nс помощью цикла repeat...until, при этом выводится приглашениеn > 0; n =. - Повторяется ввод
mс помощью цикла repeat...until, при этом выводится приглашениеm > 0; m =. - Вычисляется значение переменной
kкак округленное значение от деления логарифмаnна 3. - Проверяется условие: если значение
k + 1большеmИЛИ произведение(k - 1) * k * (k + 1)не равноn, выводится сообщениеПоследовательность не найдена. - Иначе выводится сообщение, состоящее из значений переменных
k - 1,k,k + 1иn, разделенных звездочками и равно. - Программа ожидает ввода пользователя и завершается.