Последовательно вводятся целые положительные числа. Для каждого числа выяснить, является ли оно факториалом - Free Pascal
Формулировка задачи:
Последовательно вводятся целые положительные числа. Для каждого числа выяснить, является ли оно факториалом какого-либо числа. Если да, то вывести число, факториалом которого является вве-денное, если нет, вывести сообщение об этом. Признаком конца ввода является ввод нуля.
Решение задачи: «Последовательно вводятся целые положительные числа. Для каждого числа выяснить, является ли оно факториалом»
textual
Листинг программы
function IsFact(x: Longint; var n: Longint): Boolean; var p: Longint; begin p:=1; n:=1; while p<x do begin Inc(n); p:=p*n; end; IsFact:=p=x; end;
Объяснение кода листинга программы
Список элементов:
- Объявление функции
IsFact
с двумя параметрамиx
иn
типаLongint
и с типом результатаBoolean
. - Инициализация переменных
p
иn
со значением 1. - Запуск цикла while, который будет выполняться до тех пор, пока значение переменной
p
меньше значения переменнойx
. - Увеличение значения переменной
n
на единицу в каждой итерации цикла. - Перемножение переменных
p
иn
и присваивание результата переменнойp
. - Проверка условия
p=x
и присвоение значения переменнойIsFact
. - Конец функции.