Fala galera, tudo beleza?
Hoje vamos ver como mostrar programas que verificam se um número é ou não um número feliz na matemática.
Caso você queria saber mais sobre a definição de número feliz segundo a matemática, recomendo a leitura do nosso post específico sobre o assunto:
Agora vamos as códigos!!!
/****************************************************************************** Criado pelo professor Giovani Da Cruz https:// giovanidacruz.com.br *******************************************************************************/ using System; using System.Collections.Generic; class Program { // Função para calcular a soma dos quadrados dos dígitos de um número static int CalcularSomaDosQuadrados(int n) { int soma = 0; while (n > 0) { int digito = n % 10; soma += digito * digito; n /= 10; } return soma; } // Função para verificar se um número é feliz static bool EhNumeroFeliz(int n) { HashSet<int> numerosVistos = new HashSet<int>(); while (n != 1 && !numerosVistos.Contains(n)) { numerosVistos.Add(n); n = CalcularSomaDosQuadrados(n); } return n == 1; } static void Main() { Console.Write("Digite um número: "); int numero = int.Parse(Console.ReadLine()); if (EhNumeroFeliz(numero)) { Console.WriteLine(numero + " é um número feliz!"); } else { Console.WriteLine(numero + " não é um número feliz."); } } }
System
e System.Collections.Generic
são namespaces necessários.CalcularSomaDosQuadrados
: Esta função recebe um número n
como entrada e calcula a soma dos quadrados dos dígitos desse número. Ela faz isso usando um loop while
para iterar pelos dígitos do número. O resultado da soma é retornado.EhNumeroFeliz
: Esta função recebe um número n
como entrada e verifica se ele é um número feliz. A função utiliza um conjunto (HashSet) chamado numerosVistos
para rastrear os números que já foram vistos durante o processo. A função entra em um loop while
que continua até que n
seja igual a 1 (um número feliz) ou até que n
seja um número que já foi visto anteriormente. No loop, ela adiciona o número atual ao conjunto numerosVistos
e atualiza n
chamando a função CalcularSomaDosQuadrados
para obter o próximo número na sequência. A função retorna true
se o número for feliz e false
se não for.Main
: A função Main
é o ponto de entrada do programa. Ela começa solicitando ao usuário que insira um número através da função Console.ReadLine()
e converte a entrada em um número inteiro usando int.Parse()
. Em seguida, ela chama a função EhNumeroFeliz
para determinar se o número é feliz ou não e imprime a mensagem apropriada com base no resultado.Basicamente, o programa verifica se o número é feliz seguindo a definição matemática de números felizes, onde você itera pela soma dos quadrados dos dígitos até que chegue ao número 1 ou entre em um ciclo infinito. Se chegar a 1, é considerado um número feliz; caso contrário, não é. O programa utiliza um conjunto para evitar ciclos infinitos, pois se ele encontrar um número que já foi visto, saberá que está preso em um ciclo e interromperá a verificação.
/* Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br */ #include <iostream> #include <set> // Função para calcular a soma dos quadrados dos dígitos de um número int calcularSomaDosQuadrados(int n) { int soma = 0; while (n > 0) { int digito = n % 10; soma += digito * digito; n /= 10; } return soma; } // Função para verificar se um número é feliz bool ehNumeroFeliz(int n) { std::set<int> numerosVistos; while (n != 1 && numerosVistos.find(n) == numerosVistos.end()) { numerosVistos.insert(n); n = calcularSomaDosQuadrados(n); } return n == 1; } int main() { int numero; std::cout << "Digite um número: "; std::cin >> numero; if (ehNumeroFeliz(numero)) { std::cout << numero << " é um número feliz!" << std::endl; } else { std::cout << numero << " não é um número feliz." << std::endl; } return 0; }
Neste programa, primeiro definimos uma função calcularSomaDosQuadrados
que calcula a soma dos quadrados dos dígitos de um número. Em seguida, temos a função ehNumeroFeliz
que verifica se um número é feliz ou não.
O programa principal lê um número da entrada padrão, chama a função ehNumeroFeliz
para verificar se ele é feliz e exibe a mensagem apropriada.
Lembrando que um número feliz é aquele que, ao substituir cada dígito pela soma dos quadrados dos seus dígitos e repetir o processo, eventualmente resulta no número 1. Caso contrário, não é considerado um número feliz.
''' Criado pelo professor Giovani Da Cruz https:// giovanidacruz.com.br ''' # Função para calcular a soma dos quadrados dos dígitos de um número def calcular_soma_dos_quadrados(n): soma = 0 while n > 0: digito = n % 10 soma += digito * digito n //= 10 return soma # Função para verificar se um número é feliz def eh_numero_feliz(n): numeros_vistos = set() while n != 1 and n not in numeros_vistos: numeros_vistos.add(n) n = calcular_soma_dos_quadrados(n) return n == 1 # Função principal def main(): numero = int(input("Digite um número: ")) if eh_numero_feliz(numero): print(f"{numero} é um número feliz!") else: print(f"{numero} não é um número feliz.") if __name__ == "__main__": main()
calcular_soma_dos_quadrados(n)
é uma função que recebe um número n
como entrada e calcula a soma dos quadrados dos dígitos desse número. Por exemplo, para o número 19, a função calcula 1^2 + 9^2 = 82.eh_numero_feliz(n)
é uma função que verifica se um número é feliz. Ela utiliza um conjunto (set) chamado numeros_vistos
para rastrear os números que já foram vistos durante a verificação. O loop while é usado para continuar o processo até que o número seja 1 (um número feliz) ou até que um número já visto seja encontrado. Se o número final for 1, a função retorna True
, indicando que o número é feliz; caso contrário, retorna False
.main()
, primeiro pedimos ao usuário que insira um número usando a função input()
, e o número é convertido para um inteiro.eh_numero_feliz(numero)
para verificar se o número inserido pelo usuário é feliz ou não.eh_numero_feliz()
, exibimos a mensagem apropriada para o usuário usando a função print()
.if __name__ == "__main__":
garante que o código dentro da função main()
seja executado somente se o arquivo Python for executado diretamente (não se for importado como módulo em outro programa).No geral, o código em Python funciona da mesma forma que o código em C#. Ele verifica se um número é feliz seguindo a definição matemática de números felizes, e depois informa ao usuário se o número é ou não um número feliz.
Para este exemplo, deixamos um link para o post do mesmo exercício no site Show Delphi.
Beleza pessoal? Espero que tenham gostado.
Deixe nos comentários sugestões de outras linguagens para implementarmos este exercício.
Um abraço e até o próximo post. Valeu!
Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!