Advertisement
kuroshan1104

codigo examen 2

Jul 4th, 2023
1,039
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.33 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function es_primo() {
  4.     local num=$1
  5.     local i=2
  6.  
  7.     if [ $num -lt 2 ]; then
  8.         return 1
  9.     fi
  10.  
  11.     while [ $((i * i)) -le $num ]
  12.     do
  13.         if [ $((num % i)) -eq 0 ]; then
  14.             return 1
  15.         fi
  16.         i=$((i + 1))
  17.     done
  18.  
  19.     return 0
  20. }
  21.  
  22.  
  23. function calcular_raiz_cuadrada() {
  24.     local num1=$1
  25.     local num2=$2
  26.  
  27.     if [ $num1 -gt $num2 ]; then
  28.         mayor=$num1
  29.     else
  30.         mayor=$num2
  31.     fi
  32.  
  33.     raiz=$(echo "scale=2; sqrt($mayor)" | bc)
  34.     echo "La raíz cuadrada del número mayor ($mayor) es: $raiz"
  35. }
  36.  
  37. function calcular_factorial() {
  38.     local num1=$1
  39.     local num2=$2
  40.  
  41.     if [ $num1 -lt $num2 ]; then
  42.         menor=$num1
  43.     else
  44.         menor=$num2
  45.     fi
  46.  
  47.     factorial=1
  48.     for ((i=2; i<=menor; i++))
  49.     do
  50.         factorial=$((factorial * i))
  51.     done
  52.  
  53.     echo "El factorial del número menor ($menor) es: $factorial"
  54. }
  55.  
  56. function menu() {
  57.     echo "--------------- Menú --------------"
  58.     echo "1) Verificar si dos números son primos"
  59.     echo "2) Calcular la raíz cuadrada del número mayor"
  60.     echo "3) Calcular el factorial del número menor"
  61.     echo "4) Salir"
  62.     echo "-----------------------------------"
  63.  
  64.     read -p "Ingrese una opción: " opcion
  65.  
  66.     case $opcion in
  67.         1)
  68.             read -p "Ingrese el primer número: " num1
  69.             read -p "Ingrese el segundo número: " num2
  70.             if es_primo $num1 && es_primo $num2; then
  71.                 echo "Ambos números son primos."
  72.             elif es_primo $num1 || es_primo $num2; then
  73.                 echo "Solo uno de los números es primo."
  74.             else
  75.                 echo "Ninguno de los números es primo."
  76.             fi
  77.             ;;
  78.         2)
  79.             read -p "Ingrese el primer número: " num1
  80.             read -p "Ingrese el segundo número: " num2
  81.             calcular_raiz_cuadrada $num1 $num2
  82.             ;;
  83.         3)
  84.             read -p "Ingrese el primer número: " num1
  85.             read -p "Ingrese el segundo número: " num2
  86.             calcular_factorial $num1 $num2
  87.             ;;
  88.         4)
  89.             echo "Saliendo..."
  90.             exit
  91.             ;;
  92.         *)
  93.             echo "Opción inválida. Por favor, ingrese una opción válida."
  94.             ;;
  95.     esac
  96. }
  97.  
  98. while true
  99. do
  100.     menu
  101.     echo
  102. done
  103.  
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement