Предмет: Информатика,
автор: CLOOOOWWNX
НА С++
Совершенным называется число, равное сумме всех своих делителей, меньших его самого (например, число 6=1+2+3). Напишите программу, которая вводит натуральное число N и определяет, является ли число N совершенным.
Входные данные
Входная строка содержит натуральное число N .
Выходные данные
Если число N – совершенное, программа должна вывести в одну строчку через пробел все делители этого числа, меньшие N . Если число несовершенное, программа должна вывести 0.
Примеры
входные данные
28
выходные данные
1 2 4 7 14
входные данные
29
выходные данные
0
Ответы
Автор ответа:
0
Объяснение:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int number = 0, sum = 0;
cout << "Number: ";
cin >> number;
vector <int> v;
if (number == 1)
{
cout << '1' << endl;
return 0;
}
for (int i = 1; i < number; i++)
{
if (number % i == 0)
{
sum += i;
v.push_back(i);
}
}
if (sum == number && !v.empty())
{
for (const auto& value : v)
{
cout << value << " ";
}
}
else
{
cout << '0';
}
return 0;
}
Похожие вопросы
Предмет: Английский язык,
автор: VM80
Предмет: Русский язык,
автор: elinapetrosyan
Предмет: Русский язык,
автор: 255506
Предмет: Математика,
автор: malinavitalina
Предмет: Геометрия,
автор: Aracul456