不计算一个范围内的完美数吗?

时间:2018-10-29 17:22:21

标签: c++ math numbers perfect-numbers

我想找到一个范围内的理想数。 这是我到目前为止所做的。

#include <iostream>

using namespace std;

int main()
{
   // cout<<"Hello World";
   int sum = 0;
   int count = 0;
   int x,y;
   cout<<"Enter the first number";
   cin>> x;
   cout<<"Enter the second number";
   cin>>y;
   for(int i=x;i<=y;i++)
   {
       for(int j=1; j<i; j++)
       {
           if(i%j == 0)
           {
               sum=sum+j;
           }
       }
       if(sum == i)
       {
           count++;
       }
   }
   cout<<"The number of pefect numbers are: "<<count;


}

但是,当我输入范围时,它告诉我例如1到10范围内可用的理想数的数量为0。

那是为什么?我不知道这是怎么了?

1 个答案:

答案 0 :(得分:2)

每次输入都需要输入sum=0。例如

if(sum == i) {
      count++;
}
sum = 0; /* add this line here */

for(int i=x;i<=y;i++) {
        sum = 0; /* or make sum as 0 here  */
        for(int j=1; j<i; j++) { 
                if(i%j == 0) {
                        sum=sum+j;
                }
        }
        if(sum == i) {
                count++;
        }
}

也请阅读Why is “using namespace std” considered bad practice?