C/C++

Помогите пожалуйста решить задачу на C++

2) Натуральное число называется совершенным, если сумма
всех его делителей равна ему самому.Напишите функцию
поиска таких чисел во введенном интервале.
Вот пример кода на C++, который находит все совершенные числа в заданном интервале:
 #include  
using namespace std;

bool isPerfect(int n) {
int sum = 1;
for (int i = 2; i * i
Сергей Трояновский
Сергей Трояновский
14 273
Лучший ответ
 #include  
#include
using namespace std;
bool before(const string& a, const string& b) {
if (a.length() < b.length()) return true;
if (a.length() == b.length()) return a < b;
return false;
}
bool after(const string& a, const string& b) {
if (a.length() > b.length()) return true;
if (a.length() == b.length()) return a > b;
return false;
}
int main() {
const string perfect[]{
"6",
"28",
"496",
"8128",
"33550336",
"8589869056",
"137438691328",
"2305843008139952128",
"2658455991569831744654692615953842176",
"191561942608236107294793378084303638130997321548169216"
};
string start, stop;
cin >> start >> stop;
for (const auto& num : perfect) {
if (after(num, stop)) break;
if (before(num, start)) continue;
cout
#include <iostream>

// Функция для проверки, является ли число совершенным
bool isPerfect(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}

// Функция для поиска совершенных чисел в заданном интервале
void findPerfectNumbers(int start, int end) {
for (int i = start; i <= end; i++) {
if (isPerfect(i)) {
std::cout << i << " ";
}
}
std::cout << std::endl;
}

int main() {
int start, end;

std::cout << "Введите начало интервала: ";
std::cin >> start;

std::cout << "Введите конец интервала: ";
std::cin >> end;

std::cout << "Совершенные числа в интервале [" << start << ", " << end << "]: ";
findPerfectNumbers(start, end);

return 0;
}
Адхам Ахмедов
Адхам Ахмедов
1 900