Jump to content
Fórum Script Brasil
  • 0

Erro de resultado


miiiiiiiiiiia

Question

Este programa informa ao usuário se o número é perfeito ou não ;

O que está acontecendo é que quando eu digito 6 como valor ele está declarando perfeito . O que é real .

Já ao digitar 28 , ele diz que o número não é perfeito . porém, 28 é perfeito .

Alguém consegue analisar ?

número perfeito é quando a soma de seus divisores é igual a ele mesmo

#include <iostream>
using namespace std;

bool perfeito(int v) {
int cont, acum=0;
for (cont=1;cont<=v/2;cont++) {

acum=acum+cont;

}if (acum==v) {
return true;

}else {

return  false;

}

}


int main(){
int v;
cout<<"Informe um valor";
cin>>v;
if (perfeito(v)==true){
cout<<"\nPerfeito";

}else if (perfeito(v)==false){


cout<<"não perfeito";


return 0;


}


}

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Não faz sentido o que você está fazendo dentro do for com cont. Você está somando todos os números de 1 até v/2, mas você só pode somar se o número for um divisor de v. O for tem de ir até o número menos 1 e primeiro verifica se é um dividor pra depois somar. Dá uma olhada:

#include <iostream>

using namespace std;

bool perfeito(int v)
{
     int cont, acum=0;
     for (cont = 1; cont < v; cont++)
     {
         if ((v % cont)  == 0)
         {
             acum += cont;                
         }
     }
     if (acum==v)
     {
         return true;
     }
     else
     {
         return  false;
     }
}

int main()
{
    int v;
    cout << "Informe um valor: ";
    cin >> v;
    if (perfeito(v)==true)
    {
        cout << "\nPerfeito\n";
    }
    else if (perfeito(v)==false)
    {
         cout << "\nNao perfeito\n";
         return 0;
    }
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...