Root /ArchiveAbout
()

Наименьшее общее кратное (НОК)

Наименьшее общее кратное (НОК)

Следующий код предназначен для нахождения НОК двух чисел. Максимально допустимое значение — 18 446 744 073 709 551 615 (целочисленный тип данных — uint64), поддерживаемое средой PascalABC.Net. Если вы используете другую среду Паскаля, то используйте integer. Смысл приведенного ниже решения исходит из простого классического факта для двух натуральных чисел А и В: произведение A·B равно произведению НОД(А,В) на НОК(А,В). Последнее означает, что наибольшее общее кратное двух чисел можно найти по формуле:

НОК(А,В) = A·(B/НОД(А,В)).

var
  A, B, x, y, NOK: integer;

begin
  writeln('Введите целые неотрицательные числа A и B:');
  readln(A, B);
  x := A; { <== Запоминаем А }
  y := B; { <== Запоминаем В }
  write('Результат: НОД(', A, ', ', B, ') = ');
  { Сначала находим НОД(А,В): }
  while A <> B do
    if A > B then A := A - B 
    else B := B - A;
  { На выходе из цикла получим НОД = А }
  NOK := x * (y div A); { <== находим НОК(А,В) }
  { Выводим результат: }
  writeln(' ', NOK)
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647