Files
repo2/script_LCM.sh
gyg72 4f836ba8f1 NOK
2026-02-28 12:34:44 +00:00

47 lines
1.1 KiB
Bash
Executable File
Raw Permalink 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
# Скрипт для нахождения НОК (наименьшего общего кратного) двух чисел
# НОК(a,b) = |a*b| / НОД(a,b)
# Проверяем, переданы ли два аргумента
if [ $# -ne 2 ]; then
echo "Использование: $0 <число1> <число2>"
exit 1
fi
# Проверяем, являются ли аргументы числами
if ! [[ $1 =~ ^[0-9]+$ ]] || ! [[ $2 =~ ^[0-9]+$ ]]; then
echo "Ошибка: аргументы должны быть неотрицательными целыми числами"
exit 1
fi
a=$1
b=$2
# Проверка на ноль
if [ $a -eq 0 ] || [ $b -eq 0 ]; then
echo "НОК($1, $2) = 0"
exit 0
fi
# Функция для нахождения НОД с помощью алгоритма Евклида
gcd() {
local x=$1
local y=$2
while [ $y -ne 0 ]; do
local remainder=$((x % y))
x=$y
y=$remainder
done
echo $x
}
# Вычисляем НОД
gcd_result=$(gcd $a $b)
# Вычисляем НОК
lcm_result=$(( (a * b) / gcd_result ))
echo "НОК($1, $2) = $lcm_result"