Нахождение
Н.О.К. двух заданных чисел.
|
Program
N_O_D (Input, Output);
|
Объявление
имени программы
|
Var
|
Блок
объявления глобальных переменных
|
A,
B
: LongInt;
|
Переменные
A и B - исходные числа
|
NOK,
NOD
: LongInt;
|
NOK
- искомый Н.О.К. двух чисел, NOD -
вспомогательная переменная
|
|
|
Begin
|
Начало
тела программы
|
|
|
WriteLn
('PASCAL: Нахождение Н.О.К. двух заданных
чисел.');
|
Формулировка
цели алгоритма
|
WriteLn
('Введите числа, для которых ищется НОК:');
|
Вывод
запроса исходных чисел
|
Write
('Первое число: ');
ReadLn (A);
|
Запрос
и ввод первого числа
|
Write
('Второе число: ');
ReadLn (B);
|
Запрос
и ввод второго числа
|
|
|
If
(A < B) Then
NOD := A Else
NOD := B;
|
Начальное
значение NOD - минимальное из чисел A и B
|
|
|
While
Not ( (A Mod NOD = 0) And (B Mod NOD = 0) ) Do
|
Находим
Н.О.Д. двух заданных чисел
|
NOD
:= NOD - 1;
|
Находим
Н.О.Д. двух заданных чисел
|
|
|
A
:= A Div NOD;
|
Выделяем
из A множитель, не имеющий соответствия в
числе B
|
B
:= B Div NOD;
|
Выделяем
из B множитель, не имеющий соответствия в
числе A
|
NOK
:= A * B * NOD;
|
НОК
двух чисел равен произведению НОД на
отличающиеся множители
|
WriteLn
('НОК
= ', NOK);
|
Вывод
найденного значение Н.О.К.
|
|
|
ReadLn;
|
Ожидание
нажатия клавиши Enter для завершения
|
End.
|
Конец
программы.
|