33 lines
680 B
Bash
33 lines
680 B
Bash
#!/bin/bash
|
||
if ! command -v gcd &> /dev/null; then
|
||
source ./nod.sh
|
||
fi
|
||
|
||
lcm() {
|
||
local a=$1
|
||
local b=$2
|
||
|
||
if [ $a -eq 0 ] || [ $b -eq 0 ]; then
|
||
echo 0
|
||
return 0
|
||
fi
|
||
|
||
local gcd_val=$(gcd $a $b)
|
||
local lcm_val=$((a * b / gcd_val))
|
||
|
||
echo $lcm_val
|
||
}
|
||
|
||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||
if [ $# -ne 2 ]; then
|
||
exit 1
|
||
fi
|
||
|
||
if ! [[ "$1" =~ ^[0-9]+$ ]] || ! [[ "$2" =~ ^[0-9]+$ ]]; then
|
||
echo "Ошибка: Аргументы должны быть целыми положительными числами"
|
||
exit 1
|
||
fi
|
||
|
||
result=$(lcm $1 $2)
|
||
echo "НОК($1, $2) = $result"
|
||
fi |