Рекурсивная факторизация
Материал из Вики ИТ мехмата ЮФУ
Процедура Factorization должна выводить все простые делители целого положительного числа number, не меньшие, чем divisor. Однако она содержит ошибки.
procedure Factorization(number, divisor: integer);
begin
Assert(number > 0, 'Factorization: number > 0');
Assert(divisor > 0, 'Factorization: divisor > 0');
if number = 1 then
exit
else if number mod divisor = 0 then
begin
Write(divisor, ' ');
Factorization(number div divisor, divisor);
end
else
Factorization(number, divisor + 1);
end;