Решение задачи "Совершенные числа" с Меньшиков

Без пояснения   Просмотров: 19


Число называется совершенным, если оно равно сумме всех своих делителей, меньших его самого. Требуется найти все совершенные числа от M до N.

Код

#include <iostream>
#include <cmath>
 
using namespace std;
 
bool isPerfect(int n)
{
    if (n==1) return false;
    int sum = 1;
    int len = sqrt((double)n);
    for (int i=2;i<=len;i++)
    {
        if (n%i==0)
        {
            sum+=i;
            if (n/i != i)
                sum+=n/i;   
        }
    }
    return n == sum;
}
int main()
{
    int a,b;
    cin>>a>>b;
    bool isExist = false;
    for (int i=a;i<=b;i++)
        if (isPerfect(i))
        {
            printf("%i\n",i);
            isExist = true;
        }
    if (!isExist)
        cout<<"Absent";
    return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться