исправление main
This commit is contained in:
36
lcm.sh
36
lcm.sh
@@ -1,36 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
|
|
||||||
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"
|
|
||||||
Reference in New Issue
Block a user