diff --git a/nod.sh b/nod.sh index ceecc18..746e7f6 100644 --- a/nod.sh +++ b/nod.sh @@ -1,18 +1,35 @@ #!/bin/bash -# Функция для подсчета директорий только в текущей директории (без рекурсии) -count_directories() { - local dir="$1" - local count=0 - - if [ ! -d "$dir" ]; then - echo "Ошибка: Директория '$dir' не существует" >&2 - return 1 +gcd() { + local a=$1 + local b=$2 + if [ $a -eq 0 ]; then + echo $b + return 0 fi - # Подсчитываем только прямые поддиректории - count=$(find "$dir" -maxdepth 1 -type d | wc -l) - count=$((count - 1)) + if [ $b -eq 0 ]; then + echo $a + return 0 + fi + while [ $b -ne 0 ]; do + local temp=$b + b=$((a % b)) + a=$temp + done - echo "Количество прямых поддиректорий в '$dir': $count" -} \ No newline at end of file + echo $a +} +if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then + if [ $# -ne 2 ]; then + exit 1 + fi + + if ! [[ "$1" =~ ^[0-9]+$ ]] || ! [[ "$2" =~ ^[0-9]+$ ]]; then + echo "Ошибка: Аргументы должны быть целыми положительными числами" + exit 1 + fi + + result=$(gcd $1 $2) + echo "НОД($1, $2) = $result" +fi \ No newline at end of file