Cálculo de número perfeito range
Publicado por Sérgio Abrantes Junior (última atualização em 23/05/2020)
[ Hits: 1.462 ]
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"
Obtém fotos de uma Câmera Digital organizando em Subdiretórios e Renomeando
Envia mensagens para o serviço mensageiro do windows facilmente
Nautilus-Script para assistir imagens ISO de filmes no MPlayer
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (1)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









