#!/bin/bash
function es_primo() {
local num=$1
local i=2
if [ $num -lt 2 ]; then
return 1
fi
while [ $((i * i)) -le $num ]
do
if [ $((num % i)) -eq 0 ]; then
return 1
fi
i=$((i + 1))
done
return 0
}
function calcular_raiz_cuadrada() {
local num1=$1
local num2=$2
if [ $num1 -gt $num2 ]; then
mayor=$num1
else
mayor=$num2
fi
raiz=$(echo "scale=2; sqrt($mayor)" | bc)
echo "La raíz cuadrada del número mayor ($mayor) es: $raiz"
}
function calcular_factorial() {
local num1=$1
local num2=$2
if [ $num1 -lt $num2 ]; then
menor=$num1
else
menor=$num2
fi
factorial=1
for ((i=2; i<=menor; i++))
do
factorial=$((factorial * i))
done
echo "El factorial del número menor ($menor) es: $factorial"
}
function menu() {
echo "--------------- Menú --------------"
echo "1) Verificar si dos números son primos"
echo "2) Calcular la raíz cuadrada del número mayor"
echo "3) Calcular el factorial del número menor"
echo "4) Salir"
echo "-----------------------------------"
read -p "Ingrese una opción: " opcion
case $opcion in
1)
read -p "Ingrese el primer número: " num1
read -p "Ingrese el segundo número: " num2
if es_primo $num1 && es_primo $num2; then
echo "Ambos números son primos."
elif es_primo $num1 || es_primo $num2; then
echo "Solo uno de los números es primo."
else
echo "Ninguno de los números es primo."
fi
;;
2)
read -p "Ingrese el primer número: " num1
read -p "Ingrese el segundo número: " num2
calcular_raiz_cuadrada $num1 $num2
;;
3)
read -p "Ingrese el primer número: " num1
read -p "Ingrese el segundo número: " num2
calcular_factorial $num1 $num2
;;
4)
echo "Saliendo..."
exit
;;
*)
echo "Opción inválida. Por favor, ingrese una opción válida."
;;
esac
}
while true
do
menu
echo
done