我想知道如何開發一個C++程序,提示用戶輸入2個數字n1
,n2
而n2
大於n1
。然後該程序旨在確定n1
和n2
之間的所有完美數字。一個整數被認爲是一個完美的數字,如果它的因素的總和,包括1(但不是數字本身),等於數字本身。例如,6是一個完美的數字,因爲6 = 1 + 2 + 3
。完美數字程序中的邏輯錯誤
到目前爲止,這裏是我想出了,它有沒有運行時/語法錯誤,但不幸的是邏輯上的錯誤(S):
#include <iostream>
using namespace std;
int main(){
int number, sum = 0, divi = 1, n1, n2;
cout<<" Please enter n1: ";
cin>>n1;
cout<<" Please enter n2: ";
cin>>n2;
number = n1;
while(number <= n2){
while(divi <=n2){
if (number%divi ==0)
sum+=divi;
divi++;
}
if(sum == number)
cout<<number<<endl;
number++;
}
return 0;
}
我可以同時循環只能使用。你能發現任何邏輯錯誤嗎?
點心和迪維應該每個號碼前被重新初始化。 – user448810