#!/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"