Добавлен скрипт НОК и основной шаблон
This commit is contained in:
12
main.sh
Executable file
12
main.sh
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Запрашиваем первое число
|
||||||
|
echo "Введите первое число:"
|
||||||
|
read num1
|
||||||
|
|
||||||
|
# Запрашиваем второе число
|
||||||
|
echo "Введите второе число:"
|
||||||
|
read num2
|
||||||
|
|
||||||
|
# Вызываем скрипт НОК и передаем ему числа
|
||||||
|
./script_nok.sh $num1 $num2
|
||||||
52
script_nok.sh
Executable file
52
script_nok.sh
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Функция для нахождения наибольшего общего делителя (НОД) с помощью алгоритма Евклида
|
||||||
|
gcd() {
|
||||||
|
local a=$1
|
||||||
|
local b=$2
|
||||||
|
|
||||||
|
while [ $b -ne 0 ]; do
|
||||||
|
local temp=$b
|
||||||
|
b=$((a % b))
|
||||||
|
a=$temp
|
||||||
|
done
|
||||||
|
|
||||||
|
echo $a
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция для нахождения наименьшего общего кратного (НОК)
|
||||||
|
lcm() {
|
||||||
|
local a=$1
|
||||||
|
local b=$2
|
||||||
|
|
||||||
|
# Проверка на ноль
|
||||||
|
if [ $a -eq 0 ] || [ $b -eq 0 ]; then
|
||||||
|
echo 0
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Берем абсолютные значения
|
||||||
|
a=${a#-}
|
||||||
|
b=${b#-}
|
||||||
|
|
||||||
|
local gcd_value=$(gcd $a $b)
|
||||||
|
echo $((a * b / gcd_value))
|
||||||
|
}
|
||||||
|
|
||||||
|
# Основная часть скрипта
|
||||||
|
if [ $# -ne 2 ]; then
|
||||||
|
echo "Использование: $0 <число1> <число2>"
|
||||||
|
echo "Пример: $0 12 18"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка, что аргументы являются числами
|
||||||
|
if ! [[ $1 =~ ^-?[0-9]+$ ]] || ! [[ $2 =~ ^-?[0-9]+$ ]]; then
|
||||||
|
echo "Ошибка: Аргументы должны быть целыми числами"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Вычисление НОК
|
||||||
|
result=$(lcm $1 $2)
|
||||||
|
|
||||||
|
echo "Наименьшее общее кратное (НОК) чисел $1 и $2 = $result"
|
||||||
Reference in New Issue
Block a user