Ir ao conteúdo
  • Cadastre-se

CeifadorDburgues

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

3
  1. Camaradas, obrigado pela ajuda. Consegui rodar com o seguinte código: #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int a=0,b=0,d=2,e=0; cout<< "Exercicio 11.\n"; cout<< "\nDigite o primeiro termo do intervalo de numeros desejado.\n"; cin>> a; cout<< "\nDigite o ultimo termo do intervalo desejado.\n"; cin>> b; while(a <= { while(d <= a) { if((a%d) == 0) { e = e + (a/d); } d = d + 1; } if(e == a) { cout<< "\nO numero " << a << " é perfeito."; } else { cout<< "\nO numero " << a << " nao é perfeito."; } a = a + 1; e = 0; d = 2; } cout<< "\n\n"; system("PAUSE"); return EXIT_SUCCESS; }
  2. Camarada, um numero perfeito é aquele cujo a soma de seus divisores inteiros, com exceção dele mesmo, é igual a ele mesmo. Por exemplo: 28 = 1 + 2 + 4 + 7 + 14 O problema do programa está na condição do while. A variavel d(divisor) continua aumentando seu valor mesmo após ter atingido o valor do ultimo divisor do numero perfeito em questão, assim classificando todos os numeros em questao como imperfeitos. No caso do numero 28, o programa continua aumentando o valor da variavel d, após a mesma ter atungido o valor 14, e somando o resultado da divisão com o resto dos numeros. A variavel q armazena os resultados das somas é a e.
  3. Camaradas, estou empacado em um exercício aqui da facul. N consigo determinar uma condição para o segundo while do código abaixo, que faça o programa funcionar direito, poderiam me ajudar? O objetivo do programa é ler um intervalo de numeros e classificar os numeros do intervalo em perfeitos ou não perfeitos, usando como comando de laço de repetição somente o while. #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int a=0,b=0,c=0,d=1,e=0,f=0,cont=1; cout<< "Exercicio 11.\n"; cout<< "\nDigite o primeiro termo do intervalo de numeros desejado.\n"; cin>> a; cout<< "\nDigite o ultimo termo do intervalo desejado.\n"; cin>> b; while(cont <= { while() { c = a % d; if(e == 0) { f = d; d = d + 1; e = e + f; } else if( c != 0 ) { d = d + 1; } } if(e == a) { cout<< "\nO numero " << a << " é perfeito."; } else { cout<< "\nO numero " << a << " nao é perfeito."; } cont = cont + 1; a = a + 1; } cout<< "\n\n"; system("PAUSE"); return EXIT_SUCCESS; }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!