Нахождение
Н.О.Д. двух заданных чисел.
|
Program
N_O_D (Input, Output);
|
Объявление
имени программы
|
Var
|
Блок
объявления глобальных переменных
|
A,
B : LongInt;
|
Переменные
A и B - исходные числа
|
NOD
: LongInt;
|
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;
|
уменьшаем
NOD на 1, т.е. найденное значение будем
максимальным.
|
|
|
WriteLn
('НОД
= ',NOD);
|
Вывод
найденного значение Н.О.Д.
|
|
|
ReadLn;
|
Ожидание
нажатия клавиши Enter для завершения
|
End.
|
Конец
программы.
|