Existem várias abordagens para encontrar fatores em um script do Unix. Aqui estão dois, um usando `seq` e` bc` (mais portátil) e outro capacidades aritméticas do Bash alavancadas (um pouco mais rápido, mas menos portátil):
Método 1:usando `seq`,` bc` e `grep` (mais portátil) Este método é altamente portátil porque depende de utilitários do Unix Standard.
`` `BASH
#!/bin/bash
Obtenha a entrada do usuário
Leia -p "Digite um número:" num
Manuseio de erro para entrada não positiva
if ((num <=0)); então
eco "Por favor, digite um número inteiro positivo".
saída 1
fi
Gere números de 1 a num
seq 1 $ num | enquanto lia i; fazer
# Use BC para executar operação do módulo. Isso lida com grandes números.
if (($ (echo "$ num % $ i" | bc) ==0)); então
eco "$ i"
fi
feito
`` `
Este script primeiro solicita um número ao usuário. Em seguida, ele usa `seq` para gerar uma sequência de números de 1 para o número de entrada. O loop `while` itera através de cada número, e` bc` calcula o módulo. Se o módulo for 0, o número será um fator e será impresso.
Método 2:Usando aritmético Bash (menos portátil, um pouco mais rápido) Esse método aproveita os recursos aritméticos internos da Bash, tornando-o um pouco mais rápido para números menores, mas pode não ser tão portátil quanto o método `BC`.
`` `BASH
#!/bin/bash
Obtenha a entrada do usuário
Leia -p "Digite um número:" num
Manuseio de erro para entrada não positiva
if ((num <=0)); então
eco "Por favor, digite um número inteiro positivo".
saída 1
fi
itera através de números de 1 a num
para ((i =1; i <=num; i ++)); fazer
# Verifique se eu é um fator usando o Modulo Operator
if ((num % i ==0)); então
eco "$ i"
fi
feito
`` `
Esse script é semelhante ao primeiro, mas usa a expansão aritmética integrada de Bash `((...))` para a operação do módulo, evitando a chamada externa para `BC '.
Como correr: 1. Salve qualquer script em um arquivo (por exemplo, `find_factors.sh`).
2. Faça o script executável:`chmod +x find_factors.sh`
3. Execute o script:`./Find_factors.sh`
Exemplo de saída (para entrada 12): `` `
1
2
3
4
6
12
`` `
Lembre -se de escolher o método que melhor atende às suas necessidades e aos sistemas em que você estará executando. O primeiro método (usando `BC`) é geralmente recomendado para sua compatibilidade mais ampla. O segundo é mais rápido para números menores em sistemas em que a aritmética de Bash é otimizada.