“Conocimiento Sistemas>unix

¿Cómo se escribe un programa completo para encontrar factores de número dado en la programación de unix shell?

2014/12/28
Existen varios enfoques para encontrar factores en un script de shell Unix. Aquí hay dos, uno que usa `SEQ` y` BC` (más portátil) y otro apalancando las capacidades aritméticas de Bash (ligeramente más rápidas pero menos portátiles):

Método 1:usando `seq`,` bc` y `grep` (más portátil)

Este método es altamente portátil porque se basa en utilidades UNIX estándar.

`` `Bash

#!/bin/bash

Obtenga entrada del usuario

Leer -P "Ingrese un número:" Num

Manejo de errores para entrada no positiva

if ((num <=0)); entonces

Echo "Por favor ingrese un entero positivo".

Salir 1

FI

Genere números de 1 a num

SEQ 1 $ NUM | mientras lea i; hacer

# Use BC para realizar la operación de módulos. Esto maneja grandes números.

if (($ (echo "$ num % $ i" | bc) ==0)); entonces

echo "$ i"

FI

hecho

`` `` ``

Este script primero solicita al usuario para un número. Luego usa `SEQ` para generar una secuencia de números de 1 al número de entrada. El `while` loop itera a través de cada número, y` BC` calcula el módulo. Si el módulo es 0, el número es un factor y se imprime.

Método 2:Uso de aritmética bash (menos portátil, ligeramente más rápido)

Este método aprovecha las capacidades aritméticas incorporadas de Bash, lo que lo hace un poco más rápido para números más pequeños, pero podría no ser tan portátil como el método `BC`.

`` `Bash

#!/bin/bash

Obtenga entrada del usuario

Leer -P "Ingrese un número:" Num

Manejo de errores para entrada no positiva

if ((num <=0)); entonces

Echo "Por favor ingrese un entero positivo".

Salir 1

FI

iterar a través de números de 1 a num

para ((i =1; i <=num; i ++)); hacer

# Compruebe si soy un factor usando el operador de módulo

if ((num % i ==0)); entonces

echo "$ i"

FI

hecho

`` `` ``

Este script es similar al primero, pero utiliza la expansión aritmética incorporada de Bash `((...))` para la operación de módulo, evitando la llamada externa a `BC`.

Cómo ejecutar:

1. Guarde cualquier script en un archivo (por ejemplo, `find_factors.sh`).

2. Haga que el script sea ejecutable:`chmod +x find_factors.sh`

3. Ejecute el script:`./Find_factors.sh`

Salida de ejemplo (para entrada 12):

`` `` ``

1

2

3

4

6

12

`` `` ``

Recuerde elegir el método que mejor se adapte a sus necesidades y a los sistemas en los que lo ejecutará. El primer método (usando `BC`) generalmente se recomienda para su compatibilidad más amplia. El segundo es más rápido para números más pequeños en sistemas donde se optimiza la aritmética de Bash.

unix
¿Cuáles son los niveles de seguridad disponibles en UNIX?
Cómo encontrar el número de partidos en Unix
¿Identificar las funciones básicas realizadas por una interfaz de usuario o shell?
¿Qué significa el símbolo en Linux?
¿Cuáles son los diferentes tipos de almacenamiento en búfer en Unix?
¿Qué son un grupo de bytes?
¿Cuál es la función del kernel de Unix?
Cómo cambiar el color de fondo de una ventana de terminal Unix Root
Conocimiento de la computadora © http://www.ordenador.online