logotipo Blog Giovani Da Cruz
Algoritmos com Laços

Exercício: naturais com raízes quadradas inteiras

3 min de leitura 326 visualizações

raiz quadrada

Fala galera da programação, tudo beleza?

No exercício de hoje vamos treinar laços de repetição. Vamos descobrir a lista dos cem primeiros números que possuem raízes naturais inteiras.

Para treinar mais, vamos resolver o exercício sem o uso da função Sqrt.

 

Exemplo de Portugol – Portugol Studio

/*

Criado pelo professor Giovani Da Cruz

*/

programa
{
    
    funcao inicio()
    {
         inteiro numero, contador, raiz 

          contador = 0
          numero = 1
        
          escreva("Os primeiros 100 naturais com raizes quadradas inteiras são:")
        
          enquanto (contador < 100) 
          {
            raiz = 0
        
            enquanto (raiz * raiz < numero) 
            {
              raiz = raiz + 1
            }
            
            se (raiz * raiz == numero) 
            {
              escreva(numero + "\n")
              contador = contador + 1
            }
        
            numero = numero + 1
          }
         
    }

    
}

 

Exemplo em Pascal – Lazarus / Delphi

(*

Programa criado pelo professor Giovani Da Cruz

*)

program RaizesQuadradasInteirasSemSqrt;

var
  numero, contador, raiz: integer;

begin
  contador := 0;
  numero := 1;

  writeln('Os primeiros 100 naturais com raízes quadradas inteiras são:');

  while contador < 100 do
  begin
    raiz := 0;

    while raiz * raiz < numero do
      raiz := raiz + 1;

    if raiz * raiz = numero then
    begin
      writeln(numero);
      contador := contador + 1;
    end;

    numero := numero + 1;
  end;

  readln;
end.

Explicação

Este programa em Pascal busca e imprime os primeiros 100 números naturais que possuem raízes quadradas inteiras. Aqui está uma explicação mais detalhada do código:

  1. Declaração de Variáveis:
    • numero: Armazena o número atual em verificação.
    • contador: Conta quantos números com raízes quadradas inteiras foram encontrados.
    • raiz: Armazena a raiz quadrada atual sendo verificada.
  2. Inicialização de Contadores e Número:
    • contador é iniciado em 0, pois ainda não foram encontrados números.
    • numero é iniciado em 1, começando a busca a partir do primeiro número natural.
  3. Saída Inicial:
    • Imprime uma mensagem informando sobre a saída que será gerada.
  4. Laço Principal:
    • Continua até encontrar 100 números com raízes quadradas inteiras.
  5. Laço Interno para Encontrar Raiz Quadrada Inteira:
    • Continua até que a raiz quadrada ao quadrado seja maior ou igual ao número atual.
  6. Verificação e Impressão:
    • Se a raiz quadrada ao quadrado é igual ao número, imprime o número e incrementa o contador.
  7. Incremento e Próximo Número:
    • Incrementa o número atual para verificar o próximo.
  8. Fim do Programa:
    • Aguarda a leitura de uma linha antes de encerrar o programa.

O programa continua a busca até encontrar 100 números com raízes quadradas inteiras e, em seguida, termina, exibindo esses números como resultado final.

 

Exemplo em C++

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

Criado pelo professor Giovani Da Cruz

*******************************************************************************/
#include <iostream>

int main() {
    int numero = 1;
    int contador = 0;
    int raiz;

    std::cout << "Os primeiros 100 naturais com raizes quadradas inteiras sao:\n";

    while (contador < 100) {
        raiz = 0;

        while (raiz * raiz < numero)
            raiz = raiz + 1;

        if (raiz * raiz == numero) {
            std::cout << numero << std::endl;
            contador = contador + 1;
        }

        numero = numero + 1;
    }

    return 0;
}

Nesta versão em C++, utilizei a biblioteca <iostream> para entrada/saída e substituí writeln por std::cout para imprimir na tela. Além disso, utilizei std::endl para inserir uma quebra de linha. O readln foi substituído por return 0 para encerrar o programa.

 

Exemplo em Python

'''

Criado pelo professor Giovani Da Cruz

'''
numero = 1
contador = 0

print("Os primeiros 100 naturais com raizes quadradas inteiras são:")

while contador < 100:
    raiz = 0

    while raiz * raiz < numero:
        raiz = raiz + 1

    if raiz * raiz == numero:
        print(numero)
        contador = contador + 1

    numero = numero + 1

 

 

Beleza pessoal?

 

Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!

 

Um abraço e até o próximo post. Valeu!

Deixe um comentário

Seu e-mail não será publicado.