Cálculo de número perfeito único
Publicado por Sérgio Abrantes Junior (última atualização em 21/05/2020)
[ Hits: 25.667 ]
Homepage: https://br.linkedin.com/in/sergioabrantes
numeroPerfeitoUnico
Shell script que testa se o número informado é perfeito.
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: NumeroPerfeitoUnico
# 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/numeroPrimoUnico
#
#
# 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, …}
'
clear
read -p "Digite um número: " numero
contadorLoop=1
somaDivisoresInteiros=0
while [[ "$contadorLoop" -le "$((numero / 2))" ]];do
if [ "$(( numero % contadorLoop ))" = 0 ];then
somaDivisoresInteiros=$((somaDivisoresInteiros + contadorLoop))
fi
contadorLoop=$((contadorLoop + 1))
done
if [ "$somaDivisoresInteiros" -eq "$numero" ];then
echo "O Número $numero é perfeito"
else
echo "O Número $numero não é perfeito"
fi
Script para start,stop de .jar
Embaralhando elementos de um vetor
Instalando OCR apps no seu Debian.
Proteja sua rede com um simples script de firewall
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (1)
Podem me chamar de 1mbecil :) (2)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (11)
Como ler fonte de um projeto? [RESOLVIDO] (5)
Perfil criado no samba ad dc não loga no Windows 10 e 11 [RESOLVIDO] (14)









