From 2142b8b00827c10ecaec717670a09b4437432305 Mon Sep 17 00:00:00 2001 From: gyg72 Date: Fri, 27 Feb 2026 19:56:02 +0000 Subject: [PATCH] main and NOK --- lcm.sh | 36 ++++++++++++++++++++++++++++++++++++ main.sh | 25 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100755 lcm.sh create mode 100755 main.sh diff --git a/lcm.sh b/lcm.sh new file mode 100755 index 0000000..8b67779 --- /dev/null +++ b/lcm.sh @@ -0,0 +1,36 @@ +#!/bin/bash + + +if [ $# -ne 2 ]; then + echo "Использование: $0 <число1> <число2>" + exit 1 +fi + +if ! [[ $1 =~ ^[0-9]+$ ]] || ! [[ $2 =~ ^[0-9]+$ ]]; then + echo "Ошибка: аргументы должны быть неотрицательными целыми числами" + exit 1 +fi + +a=$1 +b=$2 + +if [ $a -eq 0 ] || [ $b -eq 0 ]; then + echo "НОК($1, $2) = 0" + exit 0 +fi + +gcd() { + local x=$1 + local y=$2 + while [ $y -ne 0 ]; do + local remainder=$((x % y)) + x=$y + y=$remainder + done + echo $x +} + +gcd_result=$(gcd $a $b) +lcm_result=$(( (a * b) / gcd_result )) + +echo "НОК($1, $2) = $lcm_result" diff --git a/main.sh b/main.sh new file mode 100755 index 0000000..1acfa1c --- /dev/null +++ b/main.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +echo "Введите первое число:" +read num1 + +if ! [[ $num1 =~ ^[0-9]+$ ]]; then + echo "Ошибка: введите неотрицательное целое число" + exit 1 +fi + +echo "Введите второе число:" +read num2 + +if ! [[ $num2 =~ ^[0-9]+$ ]]; then + echo "Ошибка: введите неотрицательное целое число" + exit 1 +fi + +echo "ВВЕДЕННЫЕ ЧИСЛА: $num1 И $num2" +echo "Результат вычисления НОД:" +"$SCRIPT_DIR/gcd.sh" "$num1" "$num2" +echo "Результат вычисления НОК:" +"$SCRIPT_DIR/lcm.sh" "$num1" "$num2"