From eeff122c28413c5a68c62b615f3a772066fd3b2f Mon Sep 17 00:00:00 2001 From: oltnd Date: Mon, 4 Nov 2024 16:28:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B8=D0=B3=D0=BC=D0=B0,=20=D1=81=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=BB=201=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5,=20=D0=B5=D0=B5=D0=B5=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 1.cpp diff --git a/1.cpp b/1.cpp new file mode 100644 index 0000000..2bade74 --- /dev/null +++ b/1.cpp @@ -0,0 +1,61 @@ +#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; +}