НОД . Рекурсивный алгоритм Евклида - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

1. Даны два натуральных числа X и Y. Найти их наибольший общий делитель, используя рекурсивный алгоритм Эвклида. Вход: В текстовом файле INPUT.TXT записаны числа X и Y (1 <= X, Y <= 2,000,000,000). Выход: В текстовый файл OUTPUT.TXT записать наибольший общий делитель чисел X и Y. Пример входа: 785625672 652672514 Пример выхода: 26 есть вот это
это вообще верно?) и как сюда всунуть условие со значениями переменных х и у? помогите пожалуйста

Решение задачи: «НОД . Рекурсивный алгоритм Евклида»

textual
Листинг программы
var a, b, answer: longint;
  inf, outf: text;
 
function gcd(m, n: longint): longint;
    var modulo: longint;
    begin
        modulo := m mod n;
        if modulo = 0 then
            gcd := n
        else
            gcd := gcd (n, modulo)
    end;
 
begin
    assign(inf, 'input.txt'); reset(inf);
    assign(outf, 'output.txt'); rewrite(outf);
    readln(inf, a, b);
 
    answer := gcd(a, b);
    writeln(outf, answer);
 
    close(inf);
    close(outf);
    readln
end.

Объяснение кода листинга программы

В данном коде реализована функция рекурсивного алгоритма Евклида для нахождения наибольшего общего делителя двух целых чисел. Переменные:

  1. a, b, answer: longint;
  2. inf, outf: text; Функция gcd(m, n: longint): longint;
  3. var modulo: longint;
  4. begin
  5. modulo := m mod n;
  6. if modulo = 0 then
  7.   gcd := n
  8. else
  9.   gcd := gcd (n, modulo)
  10. end; Начальная часть кода открывает файлы input.txt и output.txt для чтения и записи соответственно. Затем считываются два числа из файла input.txt с помощью функции readln. Далее вызывается функция gcd, которая принимает два аргумента: m и n - два считанных числа, и возвращает наибольший общий делитель этих чисел. Внутри функции происходит проверка остатка от деления m на n (модус), и если модус равен нулю, то gcd присваивается значение n, иначе gcd присваивается результат вызова функции gcd для n и модуса. После вызова функции gcd, найденное значение наибольшего общего делителя записывается в файл output.txt с помощью функции writeln. В конце кода вызывается функция readln для чтения последнего введенного пользователем символа и закрываются файлы input.txt и output.txt.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы