Compare commits
12 Commits
70cff05ddb
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| c4dfa28c53 | |||
| 9b88f9cbba | |||
| ca1ac5f862 | |||
| 19dd3a7620 | |||
| 3786389117 | |||
| 2fc481254a | |||
| efb8e181d6 | |||
| eba8c4f0fd | |||
| 6aaced4971 | |||
| daa6368f50 | |||
| 6a0820383f | |||
| 7a214f7f1c |
15
main.sh
Executable file
15
main.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Запрашиваем первое число
|
||||
echo "Введите первое число:"
|
||||
read num1
|
||||
|
||||
# Запрашиваем второе число
|
||||
echo "Введите второе число:"
|
||||
read num2
|
||||
|
||||
# Вызываем скрипт нок и передаем ему числа
|
||||
./script_nok.sh $num1 $num2
|
||||
|
||||
# Вызываем скрипт НОД и передаем ему числа
|
||||
./script_nod.sh $num1 $num2
|
||||
@@ -28,4 +28,5 @@ gcd() {
|
||||
|
||||
# Вычисление НОД
|
||||
result=$(gcd $1 $2)
|
||||
echo $result
|
||||
echo "Наибольший общий делитель (НОД) чисел $1 и $2 = $result"
|
||||
|
||||
|
||||
52
script_nok.sh
Executable file
52
script_nok.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user