Programación de shell con mínimo común denominador y máximo común denominador 1) Implementación de programación de script de shell de Linux 2) El usuario pasa dos números enteros a través de los parámetros del script
Abierto, error corregido, prueba superada: #! /bin/bash
#======================================= ===========================
#Autor?:?wang_qs?
#Info :?Encontrar el máximo común divisor y el mínimo común múltiplo de dos números?
#Entrada: ?LCM significa mínimo común múltiplo (mínimo común múltiplo)?
#Llamada:?lcm?12?15
#Fecha:?2010/12/17?-?modificar?formato
#xxxx:?2010 /12/17?-?Creación?
#-------------------------------- ---------- --------------------------------
#?¿Información de uso?
#----------------------------------------------- --- ------ ------------
Uso()
{ echo?"======== === ==============================" echo?"Encontrar el máximo común divisor y el mínimo común múltiplo de dos números" echo?"Uso:?lcm ?12?15" echo?"Retorno: ? máximo común divisor: 3, mínimo común múltiplo: 60."================ ==== =====================" salir?-1
}
#---- ---- ----------------------- ----------------------- -------
#?Prueba?para?entrada?válida?o?visualización?uso()?información
#--------- -------------------------------------------------- ----- ------
si?[? $#? -lt?2?];?entonces Uso
fi
#---- --------------------------------------------- ----- ----------
#Obtener los dos valores en el comando
#- --------- ------ -------------------------------------------- ------
num1=$1
num2=$2
#---------------- ------- ------- -----------------------------------
¿# operación? Primero busque uno de los números más pequeños y luego use ese número para realizar un bucle incremental
#2. >#
3. Durante la operación, registre las variables del bucle que son divisibles por números enteros
#4 Obtenga la variable opr más grande (máximo común divisor) que puede ser divisible por números enteros
#5. Resultado =num1/opr*num2/opr*opr=num1/opr*num2
#6.num2
#------ -------. -------------------------------------------------- --
#---------------------------------------- ----- --------------------- --
#get?num?:?1.GRANDE,2.PEQUEÑO
#------------------------------------------- ----- ------------------
si?[? $num1?-eq?$num2?];?
entonces p>
echo?"Máximo común divisor: ${num1}, mínimo común múltiplo: ${num1}".
salir
fi
si[? $num1?-gt?$num2?];?
entonces
GRAN=$num1
PEQUEÑO=$num2
¿exportar?GRAN
exportar?PEQUEÑO
si no
GRAN=$num2
PEQUEÑO=$ num1
exportar?GRAN
exportar?PEQUEÑO
fi
#echo?"¿GRAN?${GRAN}"
#echo?"PEQUEÑO?${PEQUEÑO}"
#---------- -------------------------------------------------- -----
#Programa para probar el máximo común divisor, inicializar variables
#tmp=`expr?$GREAT??$i`? media hora de depuración de sintaxis !!
#-------------------------------- ----------------------------
i=1
GCD_RESULT=1 p>
greattmp=1
smalltmp=1
LCM_RESULT=1
exportar?i
exportar?greattmp p>
exportar?smalltmp
exportar?GCD_RESULT
exportar?LCM_ RESULT
mientras?[?$i?-
do
#echo?"LOOP?i:?${i}"
greattmp=`expr?$GREAT??$i`
smalltmp =`expr ?$PEQUEÑO??$i`
#echo?"greattmp?:? ${greattmp}"
#echo?"smalltmp?:? ${smalltmp} "
p>¿si?[? ${greattmp}? -eq?0?];?¿entonces?
¿si?[? ${smalltmp}? -eq?0? ];?entonces
GCD_RESULT=${i}
fi
fi
i=`expr?${i}? ?1` p>
#echo?"GCD_RESULT?:? ${GCD_RESULT}"
hecho
#echo?${GCD_RESULT}
#-- --------------------------------------------- ----- -------------
#Máximo común múltiplo (GCD_RESULT)
# El mínimo común múltiplo se completa a continuación
#Para evitar variables, hay demasiados nombres, por lo que el resto aquí se reemplaza por smalltmp y greattmp
#5.result?=?num1/opr?*?num2/opr? *?opr?=?num1/opr?*?num2
#*Sig
n es el signo de multiplicación, considere escapar
#---------------------------------- - ---------------------------------
LCM_ RESULT=`expr?$SMALL?/ ? $GCD_RESULT `
#echo?"LCM_RESULT?:? ${LCM_RESULT}"
LCM_RESULT=`expr?$LCM_RESULT?\*?$GREAT`
echo ?"Máximo común divisor: ${GCD_RESULT}, mínimo común múltiplo: ${LCM_RESULT}".
#------------------------------------------ --- -----------------------
#EOF
#------- --- ---------------------------- ------------------- --------- -----