Compare commits
4 Commits
feature/gc
...
80afaf462c
| Author | SHA1 | Date | |
|---|---|---|---|
| 80afaf462c | |||
| 3da152463e | |||
|
|
d443920a4a | ||
|
|
4f836ba8f1 |
24
main.sh
Executable file
24
main.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Введите первое число:"
|
||||||
|
read num1
|
||||||
|
|
||||||
|
if ! [[ $num1 =~ ^[0-9]+$ ]]; then
|
||||||
|
echo "Ошибка: введите неотрицательное целое число"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Введите второе число:"
|
||||||
|
read num2
|
||||||
|
|
||||||
|
if ! [[ $num2 =~ ^[0-9]+$ ]]; then
|
||||||
|
echo "Ошибка: введите неотрицательное целое число"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ВВЕДЕННЫЕ ЧИСЛА: $num1 И $num2"
|
||||||
|
echo "Результат вычисления НОД:"
|
||||||
|
./script_GCD.sh "$num1" "$num2"
|
||||||
|
|
||||||
|
echo "Результат вычисления НОК:"
|
||||||
|
./script_LCM.sh "$num1" "$num2"
|
||||||
46
script_LCM.sh
Executable file
46
script_LCM.sh
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/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"
|
||||||
|
|
||||||
Reference in New Issue
Block a user