#include #include using namespace std; int gcdDivision(int a, int b) { while (b != 0) { int remainder = a % b; a = b; b = remainder; } return a; } int gcdSubtraction(int a, int b) { while (a != b) { if (a > b) a -= b; else b -= a; } return a; } int z1(int a, int b, int method) { switch (method) { case 1: return gcdDivision(a, b); case 2: return gcdSubtraction(a, b); default: cout << "Некорректный выбор метода. Выберите 1 или 2." << endl; return -1; } } void z1launcher() { int a, b, method; cout << "Введите два положительных целых числа: "; if (!(cin >> a >> b) || a <= 0 || b <= 0) { cout << "Ошибка: ввод должен быть положительными целыми числами." << endl; return; } cout << "Выберите метод:\n1 - Деление\n2 - Вычитание\nВаш выбор: "; if (!(cin >> method) || (method != 1 && method != 2)) { cout << "Ошибка: некорректный выбор метода. Введите 1 или 2." << endl; return; } int result = z1(a, b, method); if (result != -1) { cout << "НОД = " << result << endl; } } int main() { setlocale(LC_ALL, ""); z1launcher(); return 0; }