Ir ao conteúdo
  • Cadastre-se

VisualG Algoritmo para gerar os 4 primeiros números perfeitos


Posts recomendados

. Preciso de uma fórmula que gere os 4 primeiros números perfeitos de um número perfeito informado pelo usuário.

 

. Um número perfeito é aquele que é igual à soma dos seus divisores. Ex: 6 = 1+2+3, 28 = 1+2+4+7+14.

 

. Já consegui fazer um algoritmo para verificar se o número é perfeito. Veja:

 

algoritmo "semnome"

var
  n, x, soma :inteiro
inicio
  escreva(" - Informe um número: ")
    leia(n)
    
  para x de 1 ate (n - 1) faca
    se (n % x = 0) então
      soma <- (soma + x)
    fimse
  fimpara
  
  se (soma = n) então
    escreval()
    escreval(" * Este número é perfeito.")
  senao
    escreval()
    escreval(" * Este número é imperfeito.")
  fimse
fimalgoritmo

. O problema é que preciso exibir os 4 primeiros números perfeitos caso o número informado for perfeito. Alguém saberia como fazer isso?

 

Desde já agradeço.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
10 horas atrás, Lucas Da Silva Aleixo disse:

O problema é que preciso exibir os 4 primeiros números perfeitos caso o número informado for perfeito. Alguém saberia como fazer isso?

 

Teoricamente já tem um algoritmo para verificar se um número é perfeito ou não. Daí, você precisa pegar os números do domínio do problema, ou seja, os números naturais (0, 1, 2, 3, 4, 5, 6, 7....), e ir testando um a um... até que encontre 4 números que são perfeitos.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

Eu estava tentando resolver esse exercício e consegui porque o seu algoritmo me deu uma ideia. O meu ficou assim:

algoritmo "cap1215ex3"
var n,soma,x,r:inteiro

inicio
// Seção de Comandos

Repita
n<-n+1
soma<-0
 para x de 1 ate (n - 1) faca
 r<-n-(int((n)/(x))*x)  //mod e % não estava funcionando, entao fiz manualmente
    se (r = 0) entao   //r é resto
      soma <- (soma + x)
    fimse
  fimpara
ate soma=n
  escreval(n, " é um número perfeito")

Pra descobrir o próximo número perfeito é só copiar e colar o mesmo algoritmo em seguida, porque o próximo comando dele é n<-n+1, o que significa que ele vai pular o número perfeito já descoberto.

No meu pc eu colei o algoritmo 4 vezes, mas o VisualG só conseguiu descobrir até o 3º número perfeito, depois disso ele parou.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!