Найти НОД трех заданных натуральных чисел - Free Pascal
Формулировка задачи:
Найти НОД трех заданных натуральных чисел
Решение задачи: «Найти НОД трех заданных натуральных чисел»
textual
Листинг программы
program test; function GCD(m, n: integer): integer; var k: integer; {множитель} Evens: integer; {чётность чисел m и n} begin k := 1; repeat if (n = 0) or (m = 0) then begin GCD := k * (n + m); Break; end; if (n = m) then begin GCD := k * n; Break; end; if (n = 1) or (m = 1) then begin GCD := k * 1; Break; end; Evens := 0; if Odd(n) then Evens := 1; if Odd(m) then Evens := Evens + 2; case Evens of 0: begin k := k * 2; m := m div 2; n := n div 2; end; 1: begin m := m div 2; end; 2: begin n := n div 2; end; 3: begin if n > m then n := (n - m) div 2 else m := (m - n) div 2; end; end; until False; end; var a, b, c: integer; begin a := 48; b := 64; c := 910; writeln(GCD(GCD(a, b),c)); end.
Объяснение кода листинга программы
- Программа на языке Free Pascal.
- Функция GCD(m, n) находит НОД (наибольший общий делитель) двух целых чисел m и n.
- В функции используется цикл while, который выполняется до тех пор, пока n не станет равным 0.
- Переменная k инициализируется единицей.
- Если n равно 0, то GCD вычисляется как k*m и функция возвращается.
- Если m равно 0, то GCD вычисляется как k*n и функция возвращается.
- Если m равно n, то GCD вычисляется как k*n и функция возвращается.
- Если m равно 1 или n равно 1, то GCD вычисляется как k и функция возвращается.
- Переменная Evens инициализируется 0.
- Если n нечетное число, то Evens становится равным 1.
- Если m нечетное число, то Evens становится равным 2.
- Если Evens равно 0, то k умножается на 2 и m делится на 2, а n делится на 2 и цикл повторяется.
- Если Evens равно 1, то только m делится на 2 и цикл повторяется.
- Если Evens равно 2, то только n делится на 2 и цикл повторяется.
- Если Evens равно 3, то выполняется проверка, если n больше m, то n делится на 2, иначе m делится на 2 и цикл повторяется.
- В основной программе задаются значения переменных a, b и c.
- Вызывается функция GCD с аргументами GCD(GCD(a, b),c).
- Результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д