Определить являются ли два числа взаимно простыми - Pascal
Формулировка задачи:
Написать функцию в которой 2 числа называются простыми, если имеют один общий делитель- единицу
Решение задачи: «Определить являются ли два числа взаимно простыми»
textual
Листинг программы
function VZ_PRST(a,b:integer):boolean;
begin
repeat
if a>b then a:=a mod b
else b:=b mod a;
until (a=0)or(b=0);
result:=a+b=1;
end;
var a,b:integer;
begin
write('a=');readln(a);
write('b=');readln(b);
if VZ_PRST(a,b)then write('Эти числа взаимно простые!')
else write('Эти числа не являются взаимно простыми!');
end.
Объяснение кода листинга программы
- Объявление функции с именем
VZ_PRSTи параметрамиaиbтипаinteger. - Внутри функции выполнение цикла
repeat...until, в котором повторяются следующие действия:- Если
aбольшеb, то значениеaприсваивается остаток от деленияaнаb; - Иначе, значение
bприсваивается остаток от деленияbнаa.
- Если
- Проверка условия: выполнение цикла продолжается до тех пор, пока
aилиbне станут равными 0. - После выхода из цикла проверка условия: сумма
aиbравна 1. - Возвращение результата из функции - значение булевого типа, которое определяет, являются ли числа
aиbвзаимно простыми. - Объявление переменных
aиbтипаinteger. - Считывание значения переменной
aиз ввода пользователя. - Считывание значения переменной
bиз ввода пользователя. - Вызов функции
VZ_PRSTс передачей в неё значений переменныхaиb. - Вывод результата на экран: если функция возвращает
true, выводится сообщениеЭти числа взаимно простые!, иначеЭти числа не являются взаимно простыми!.