Files
.todo_lini/script_nok.sh

53 lines
1.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"