Не считая количества совершенных чисел в диапазоне?

Я хочу найти количество идеальных чисел в диапазоне.
Это то, что я сделал до сих пор.

#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.

Это почему? Я не могу понять, что здесь не так?

-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++;
}
}

Также прочитайте Почему «использование пространства имен std» считается плохой практикой?

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]