我想知道如何开发一个 C++ 程序,提示用户输入 2 个数字n1
,大于. 然后该程序旨在确定和之间的所有完美数。如果整数的因数之和(包括 1(但不包括数字本身))等于数字本身,则称整数为完美数。例如,6 是一个完美的数字,因为.n2
n2
n1
n1
n2
6 = 1 + 2 + 3
到目前为止,这是我想出的,它没有运行时/语法错误,但不幸的是逻辑错误:
#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;
}
我只能使用 while 循环。你能发现任何逻辑错误吗?