diff --git a/main.sh b/main.sh new file mode 100755 index 0000000..0b1b41b --- /dev/null +++ b/main.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Запрашиваем первое число +echo "Введите первое число:" +read num1 + +# Запрашиваем второе число +echo "Введите второе число:" +read num2 + +# Вызываем скрипт НОД и передаем ему числа +./script_nod.sh $num1 $num2 diff --git a/script_nod.sh b/script_nod.sh new file mode 100755 index 0000000..5f50203 --- /dev/null +++ b/script_nod.sh @@ -0,0 +1,31 @@ +#!/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 + +# Функция для нахождения НОД алгоритмом Евклида +gcd() { + local a=$1 + local b=$2 + + while [ $b -ne 0 ]; do + local temp=$b + b=$((a % b)) + a=$temp + done + + echo $a +} + +# Вычисление НОД +result=$(gcd $1 $2) +echo $result