我需要一些幫助修改此。它只保持顯示0作爲臨時值。謝謝。C++完美編號。需要一些幫助修改
// 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;
我使用while循環的限制,以便我可以找到所有的因數,不留餘數直到完美-1 – Sagistic 2010-03-15 20:25:31
我明白了,我需要把temp = prevtemp + temp;在if塊內,否則,它將繼續添加。我編輯過,以使其正確。 – Sagistic 2010-03-15 20:41:55
哈哈,這是作業。獲得某些幫助有什麼問題?再次感謝您的幫助,我很感激。我正在考慮使用sqrt作爲限制,我只是想首先使用一個工作原型。 – Sagistic 2010-03-15 21:01:45