Exercício: naturais com raízes quadradas inteiras

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:
- 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.
- 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.
- Saída Inicial:
- Imprime uma mensagem informando sobre a saída que será gerada.
- Laço Principal:
- Continua até encontrar 100 números com raízes quadradas inteiras.
- Laço Interno para Encontrar Raiz Quadrada Inteira:
- Continua até que a raiz quadrada ao quadrado seja maior ou igual ao número atual.
- Verificação e Impressão:
- Se a raiz quadrada ao quadrado é igual ao número, imprime o número e incrementa o contador.
- Incremento e Próximo Número:
- Incrementa o número atual para verificar o próximo.
- 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!