Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alasca

Números Perfeitos Visualg

Recommended Posts

Olá

 

Preciso de ajuda para desenvolver um algoritmo em visualg que recebe dois números e calcula a quantidade de números perfeitos entre este intervalo fechado, ou seja, incluindo os dois números.

Obs.: Um número perfeito é aquele que é igual à soma dos seus divisores (excluindo ele mesmo).

Exemplos: 6 = 1+2+3.

28= 1+2+4+7+14.

O que eu já consegui está no código abaixo.

algoritmo "perfeitos"
var i,n,soma: inteiro
inicio
leia (n)
soma <- 0
para i de 1 ate n-1 faca
 se n%i=0 entao
 soma <- soma + i
 fimse
fimpara
se soma=n entao
 escreva ("Perfeito")
senao
 escreva ("Não é perfeito")
fimse
fimalgoritmo

Porém eu quero que o usuário possa escolher o intervalo. Por exemplo, de 1 a 100, e que o algoritmo retorne quantos números perfeitos existem entre 1 e 100.

Mas não tenho ideia de como começar a fazer isso.

 

Se alguém puder me ajudar agradeço muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pense o seguinte, você já conseguiu uma lógica para encontrar um número perfeito, agora o que você precisa fazer é colocar um laço ao redor de tudo isso ai e utilizar o número atual como uma variável de contagem (e.g: i) e fazer sua lógica normalmente, porém ao retornar os números você vai precisar criar um array de valores:

 

Numero => Perfeito (S/N)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Alasca, no seu código você esqueceu de criar um for dentro do existente( Aninhado ) para encontrar os divisores dos números( que estão na variável " i " no caso ). Seguindo o enunciado do seu problema, no lugar de mostrar se o número é perfeito, você deveria incrementar 1 a alguma variável, por exemplo " Quantidade ". No final você mostra o valor da variável. No começo parece difícil, mas se vooc viajar nos códigos e na lógica vooc vai entender. Aconcelho você a começar o seu código do 0, pois vooc tomou um rumo meio troncho '~'. Espero ter ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.