Добавил
This commit is contained in:
35
ASD
Executable file
35
ASD
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
echo "Программа нахождения НОД (наибольшего общего делителя)"
|
||||||
|
# Ввод первого числа
|
||||||
|
read -p "Введите первое число: " num1
|
||||||
|
# Ввод второго числа
|
||||||
|
read -p "Введите второе число: " num2
|
||||||
|
|
||||||
|
# Проверка на пустой ввод
|
||||||
|
if [ -z "$num1" ] || [ -z "$num2" ]; then
|
||||||
|
echo "Ошибка: числа не были введены"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка, что введены числа
|
||||||
|
if ! [[ $num1 =~ ^[0-9]+$ ]] || ! [[ $num2 =~ ^[0-9]+$ ]]; then
|
||||||
|
echo "Ошибка: введите целые положительные числа"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Сохраняем оригинальные числа для вывода
|
||||||
|
original_num1=$num1
|
||||||
|
original_num2=$num2
|
||||||
|
|
||||||
|
|
||||||
|
while [ $num2 -ne 0 ]; do
|
||||||
|
remainder=$((num1 % num2))
|
||||||
|
num1=$num2
|
||||||
|
num2=$remainder
|
||||||
|
done
|
||||||
|
|
||||||
|
# Выводим результат
|
||||||
|
echo "----------------------------------------"
|
||||||
|
echo "НОД($original_num1, $original_num2) = $num1"
|
||||||
Reference in New Issue
Block a user