From 7a214f7f1cfe15fd0c59d2a88f8dc3dcc352fd3d Mon Sep 17 00:00:00 2001 From: vlitvintseva <24_LitvintsevaVD@iux.local> Date: Thu, 26 Feb 2026 19:46:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D0=9D=D0=9E?= =?UTF-8?q?=D0=9A=20=D0=B8=20=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.sh | 12 ++++++++++++ script_nok.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100755 main.sh create mode 100755 script_nok.sh diff --git a/main.sh b/main.sh new file mode 100755 index 0000000..a78893b --- /dev/null +++ b/main.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Запрашиваем первое число +echo "Введите первое число:" +read num1 + +# Запрашиваем второе число +echo "Введите второе число:" +read num2 + +# Вызываем скрипт НОК и передаем ему числа +./script_nok.sh $num1 $num2 diff --git a/script_nok.sh b/script_nok.sh new file mode 100755 index 0000000..3dadc1a --- /dev/null +++ b/script_nok.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Функция для нахождения наибольшего общего делителя (НОД) с помощью алгоритма Евклида +gcd() { + local a=$1 + local b=$2 + + while [ $b -ne 0 ]; do + local temp=$b + b=$((a % b)) + a=$temp + done + + echo $a +} + +# Функция для нахождения наименьшего общего кратного (НОК) +lcm() { + local a=$1 + local b=$2 + + # Проверка на ноль + if [ $a -eq 0 ] || [ $b -eq 0 ]; then + echo 0 + return + fi + + # Берем абсолютные значения + a=${a#-} + b=${b#-} + + local gcd_value=$(gcd $a $b) + echo $((a * b / gcd_value)) +} + +# Основная часть скрипта +if [ $# -ne 2 ]; then + echo "Использование: $0 <число1> <число2>" + echo "Пример: $0 12 18" + exit 1 +fi + +# Проверка, что аргументы являются числами +if ! [[ $1 =~ ^-?[0-9]+$ ]] || ! [[ $2 =~ ^-?[0-9]+$ ]]; then + echo "Ошибка: Аргументы должны быть целыми числами" + exit 1 +fi + +# Вычисление НОК +result=$(lcm $1 $2) + +echo "Наименьшее общее кратное (НОК) чисел $1 и $2 = $result"