Add universal NOD
This commit is contained in:
32
script1_1.sh
Executable file
32
script1_1.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Проверяем, что нам дали два числа
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "Ошибка! Нужно ввести два числа"
|
||||
echo "Пример: ./script_GCD.sh 15 20"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Запоминаем числа
|
||||
a=$1
|
||||
b=$2
|
||||
|
||||
# Сохраняем исходные числа для вывода
|
||||
original_a=$a
|
||||
original_b=$b
|
||||
|
||||
# Проверяем, что это числа (не буквы)
|
||||
if ! [[ "$a" =~ ^[0-9]+$ ]] || ! [[ "$b" =~ ^[0-9]+$ ]]; then
|
||||
echo "Ошибка! Введите только целые положительные числа"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Алгоритм Евклида (способ нахождения НОД)
|
||||
while [ $b -ne 0 ]; do
|
||||
remainder=$((a % b))
|
||||
a=$b
|
||||
b=$remainder
|
||||
done
|
||||
|
||||
# Выводим результат
|
||||
echo "НОД($original_a, $original_b) = $a"
|
||||
Reference in New Issue
Block a user