Các số hoàn hảo: Một số tự nhiên được gọi là hoàn hảo nếu tổng các ước nhỏ hơn nó bằng chính nó (VD: 6=1+2+3). In ra các số tự nhiên hoàn hảo trong khoảng [n1… n2].
Input: Một dòng duy nhất chứa hai số n1 và n2.
Output: Ghi các số hoàn hảo cách nhau một dấu cách.
#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
bool is_perfect_number(int N)
{
int total_divisors = 0;
for (int i = 1; i < N; ++i)
if (N % i == 0)
total_divisors += i;
return(total_divisors == N);
}
int main()
{
int n1, n2;
cin >> n1 >> n2;
for (int i = 1; i >= n1 and i <= n2; ++i)
if (is_perfect_number(i))
cout << i << " ";
}