Cálculo de número perfeito range
Publicado por Sérgio Abrantes Junior (última atualização em 23/05/2020)
[ Hits: 1.002 ]
Homepage: https://br.linkedin.com/in/sergioabrantes
numeroPerfeitoRange
Shell script que mostra os números perfeitos encontrados num range de números informados na execução. Ao final mostra o total de números perfeitos encontrados.
Otimizações de código:
Analisa até o divisor ser no máximo sua metade:
Ex.: Número informado = 10
Ele checará até o 5 no máximo.
#!/usr/bin/env bash # shellcheck disable=SC2162 # Prove: NumeroPerfeitoRange # Descricao Curta: Verifica se número informado é perfeito # Descrição Longa: Verifica se número informado é perfeito # Frequencia: Sob demanda # Autor: Sérgio Abrantes # Contato: sergioabrantes@gmail.com # Site: https://github.com/sergioabrantesjunior/numeroPerfeitoRange # # # Histórico: # # v1.0.0 2020-01-17, Sérgio Abrantes: # - Versão inicial do script : ' Em Matemática, um número perfeito é um número inteiro para o qual a soma de todos os seus divisores positivos próprios (excluindo ele mesmo) é igual ao próprio número. Por exemplo, o número 6 é um número perfeito, pois: 6 = 1 + 2 + 3 O próximo número perfeito é o 28, pois: 28 = 1+ 2+ 4+ 7+ 14 Os quatro primeiros números perfeitos (6, 28, 496 e 8.128) eram os únicos conhecidos pelos gregos antigos desde pelo menos Euclides. No século XV acrescentou-se 33.550.336 à lista. O conjunto dos números perfeitos é: {6, 28, 496, 8128, 33550336, 8589869056, …} ' #set -x clear read -p "Digite um número: " range contaPerfeito=0 for ((numeroAnalisado=1;numeroAnalisado<=range;numeroAnalisado++));do contadorLoop=1 somaDivisoresInteiros=0 while [[ "$contadorLoop" -le "$((numeroAnalisado / 2))" ]];do if [ "$(( numeroAnalisado % contadorLoop ))" = 0 ];then somaDivisoresInteiros=$((somaDivisoresInteiros + contadorLoop)) fi contadorLoop=$((contadorLoop + 1)) done if [ "$somaDivisoresInteiros" -eq "$numeroAnalisado" ];then echo "O Número $numeroAnalisado é perfeito" contaPerfeito=$(( contaPerfeito + 1 )) fi done echo "Encontrado $contaPerfeito números perfeitos de 1 até $range"
Usar o Google Translate para ler (speak) a seleção
Renomear arquivos de fontes ttf e otf
Monitorando acessos on-line em log do squid com autenticação.
Wrapper do dd com algumas medidas de segurança
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando e usando o Dconf Editor, o "regedit" para Linux
Como instalar o navegador TOR no seu Linux
Instalando Zoom Client no Ubuntu 24.04 LTS
Som parou de funcionar depois de atualizar o kernel do Slackware 15 (1)
validando quandidade de leitura no read[DUVIDA] (0)
Qual a relevancia dos valores de bogomips com os Mhz e Ghz[DUVIDA] (3)
Encriptografa... as particoes com LUKS, o que poderia dar errado? (6)