J'ai besoin d'aide pour réviser ceci. Il garde seulement l'affichage de 0 comme temp. Je vous remercie.C++ Nombre parfait. Besoin d'aide pour réviser
// A program to determine whether the input number is a perfect number
// A perfect number is defined by the sum of all its positive divisors excluding itself
// 28: 1+2+3+7+14 = 28.
int perfect, limit, divisor;
cout << "Please enter a positive integer in order to define whether it is a perfect integer or not: " ;
cin >> perfect;
cout << endl;
int temp = 0;
int prevtemp = 0;
limit = 1;
divisor = 1;
while (limit < perfect)
{
if ((perfect % divisor) == 0)
{
divisor = prevtemp;
temp = prevtemp + temp;
}
limit++;
divisor++;
}
if (perfect == temp)
cout << "Your number is a perfect number!" << endl;
else
cout << "Your number is not a perfect number" << endl;
return 0;
J'utilise la limite sur la boucle while afin que je puisse trouver tous les diviseurs qui ne laissent aucun reste jusqu'à parfait-1 – Sagistic
Je l'ai eu, j'avais besoin de mettre le temp = prevtemp + temp; dans le bloc if ou bien, il va continuer à ajouter. J'ai modifié pour corriger cela. – Sagistic
Haha, c'est les devoirs. Quel est le problème avec obtenir de l'aide? Encore une fois, merci pour votre aide, je l'apprécie. Je pensais utiliser le sqrt comme limite, je voulais juste un prototype fonctionnel en premier. – Sagistic