Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Unix >> Content
Como você escreve um programa completo para encontrar fatores de determinado número na programação do Unix Shell?
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.

Anterior :

Próximo :
  Os artigos relacionados
·Como verificar o uso de CPU em Unix 
·Como ver Processos Zombie em UNIX 
·Qual é o comando Unix para obter o nome de um processo…
·Como encontrar um comando de impressão em Unix 
·Qual é a diferença entre o dedo e quem comanda no Uni…
·O SSH é semelhante ao descrito na Wikipedia? 
·O que é UNIX SEQ? 
·Qual comando Linux pode ser usado para exibir o uso e c…
·Qual comando Linux é usado para atribuir rótulos um s…
·Qual é melhor solaris ou unix? 
  Artigos em destaque
·Como desativar Senha Login no Windows 7 após o sono 
·Como criar um flash USB inicializável 
·Como criar uma Baixar Windows Vista Disco de Inicializa…
·Qual a rapidez com que um computador pode calcular? 
·Você consegue jogar golfe Jack Nicholas 4 no seu iMac …
·Como acessar remotamente o Windows 2000 Professional 
·Como carregar Fontes De Microsoft 
·Tipos Casa Janela 
·Como acelerar o Windows XP no regedit 
·O que é o Action Center no Windows 10 e como usá-lo 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados