Crie um programa e um algoritmo que leia um número e informe se ele é ou não um número feliz

Número feliz na matemática

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:

O que é um número feliz na matemática?

 

Agora vamos as códigos!!!

 

Exemplo de resposta em C#

/******************************************************************************

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.");
        }
    }
}
  1. Usando declarações: No início do código, usamos algumas declarações “using” para importar namespaces que contêm classes e métodos que usaremos no programa. System e System.Collections.Generic são namespaces necessários.
  2. Função 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.
  3. Função 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.
  4. Função 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.

 

Exemplo de resposta em C++

/*
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.

 

Exemplo de resposta em Python

'''

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()

Explicação

  1. 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.
  2. 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.
  3. Na função main(), primeiro pedimos ao usuário que insira um número usando a função input(), e o número é convertido para um inteiro.
  4. Em seguida, chamamos a função eh_numero_feliz(numero) para verificar se o número inserido pelo usuário é feliz ou não.
  5. Com base no resultado retornado pela função eh_numero_feliz(), exibimos a mensagem apropriada para o usuário usando a função print().
  6. A cláusula 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.

 

Exemplo em Pascal / Delphi / Lazarus

Para este exemplo, deixamos um link para o post do mesmo exercício no site Show Delphi.

https://showdelphi.com.br/crie-um-programa-e-um-algoritmo-que-leia-um-numero-e-informe-se-ele-e-ou-nao-um-numero-feliz/

 

 

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!

  • Publicado por Giovani Da Cruz
  • 32 views
  • 0 comentarios
  • 19 de agosto de 2023

 

Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados a Categoria Algoritmos com Laços

Continue aprendendo

Aumente o seu conhecimento
Crie um algoritmo e um programa que leia 5 números e escreva o maior e o menor desses 5 números, nessa ordem.
29 de abril de 2024
Crie um algoritmo e um programa que leia 5 números e informe o maior número
10 de abril de 2024
Crie um algoritmo e um programa que solicite ao usuário digitar seis números inteiros. O programa deverá somar os valores pares informados e mostrar o resultado desta soma na tela.
18 de fevereiro de 2024
Crie um algoritmo e um programa em que solicite ao usuário digitar sete números inteiros. O programa deverá contar e mostrar na tela a quantidade de valores ímpares informados.
15 de fevereiro de 2024
Crie um algoritmo e um programa que leia 5 números e mostre o maior e o menor.
5 de fevereiro de 2024
Crie um programa e um algoritmo para listar os 1000 primeiros números primos.
23 de janeiro de 2024
Crie um programa e um algoritmo para listar os 4 primeiros números perfeitos.
19 de janeiro de 2024
Crie um programa e um algoritmo para listar os 1000 primeiros números felizes.
4 de dezembro de 2023
Crie um algoritmo e um programa para descobrir os 100 primeiros naturais que possuam raízes quadradas inteiras
28 de novembro de 2023
Exercício de algoritmo: Sequência de Fibonacci
24 de novembro de 2023