Взаимно простыми числами называются такие числа, которые не имеют общих делителей, кроме 1. Чтобы определить, являются ли два числа взаимно простыми, можно использовать алгоритм Евклида для нахождения их наибольшего общего делителя (НОД). Если НОД двух чисел равен 1, то числа взаимно простые.
На языке Паскаль можно написать логическую функцию, которая принимает два числа в качестве входных параметров и возвращает результат типа Boolean
(истина или ложь), указывающий, являются ли эти числа взаимно простыми.
Код на языке Паскаль
program MutualPrimes;
function GCD(a, b: Integer): Integer;
begin
while b 0 do
begin
a := a mod b;
a := a + b;
b := a - b;
a := a - b;
end;
GCD := a;
end;
function AreMutuallyPrime(x, y: Integer): Boolean;
begin
if GCD(x, y) = 1 then
AreMutuallyPrime := True
else
AreMutuallyPrime := False;
end;
var
a, b: Integer;
begin
Write('Введите первое число: ');
ReadLn(a);
Write('Введите второе число: ');
ReadLn(b);
if AreMutuallyPrime(a, b) then
WriteLn('Числа ', a, ' и ', b, ' являются взаимно простыми.')
else
WriteLn('Числа ', a, ' и ', b, ' не являются взаимно простыми.');
end.
Объяснение кода
Функция GCD (нахождение НОД):
- Используется алгоритм Евклида для нахождения наибольшего общего делителя (НОД) двух чисел.
- В цикле вычисляется остаток от деления числа
a
на b
, после чего переменные a
и b
меняются местами. Цикл продолжается до тех пор, пока b
не станет равным нулю. В результате в a
остается НОД.
Функция AreMutuallyPrime:
- Функция принимает два числа
x
и y
.
- Она вызывает функцию
GCD
для определения НОД двух чисел.
- Если НОД равен 1, то числа взаимно простые, и функция возвращает значение
True
. В противном случае возвращается False
.
Основная программа:
- Пользователь вводит два числа.
- Вызывается функция
AreMutuallyPrime
для проверки взаимной простоты введенных чисел.
- В зависимости от результата выдается соответствующее сообщение.
Пример работы программы
Ввод:
Введите первое число: 8
Введите второе число: 15
Вывод:
Числа 8 и 15 являются взаимно простыми.
Ввод:
Введите первое число: 12
Введите второе число: 18
Вывод:
Числа 12 и 18 не являются взаимно простыми.
Основные моменты:
- Использование алгоритма Евклида делает программу эффективной и быстрой.
- Логическая функция
AreMutuallyPrime
возвращает результат в виде True
или False
, что удобно для проверки взаимной простоты чисел.