# Алгоритмы решения прикладных задач, 1-й семестр, 2-я практика ## Задания ### Задание 1 Написать программу для поиска наибольшего общего делителя (числа вводятся с клавиатуры после запуска программы): Нечетные варианты: наибольший делитель трех чисел методом деления (для поиска остатка отделения в языке C++ используется операция %) Четные варианты: наибольший общий делитель четырех чисел метолом вычитания ```cpp // Функция для нахождения НОД двух чисел (метод деления) int gcdDivision(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; } // Функция для нахождения НОД трех чисел int gcdOfThreeNumbers(int x, int y, int z) { return gcdDivision(gcdDivision(x, y), z); } // Функция для нахождения НОД двух чисел методом вычитания int gcdSubtraction(int a, int b) { while (a != b) { if (a > b) { a -= b; } else { b -= a; } } return a; // или b, так как a == b } // Функция для нахождения НОД четырех чисел int gcdOfFourNumbers(int w, int x, int y, int z) { return gcdSubtraction(gcdSubtraction(gcdSubtraction(w, x), y), z); } ```