Рекурсивная факторизация

Материал из Вики ИТ мехмата ЮФУ
Версия от 22:41, 19 апреля 2016; Ulysses (обсуждение | вклад) (Новая страница: «Процедура <tt>Factorization</tt> должна выводить все простые делители целого положительного числ…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Процедура 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;