求c++的解决方法,越快越好

问题遇到的现象和发生背景

对于给定的N,找到他的所有较小的完美数字(完美数字是等于不等于自数的所有除数之和的数字)

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

你题目的解答代码如下:

#include <iostream>
using namespace std;

int main()
{
    int i, j, s, n; /*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/
    cin >> n;       /* n的值由键盘输入*/
    for (i = 2; i <= n; i++)
    {
        s = 0; /*保证每次循环时s的初值为0*/
        for (j = 1; j < i; j++)
        {
            if (i % j == 0) /*判断j是否为i的因子*/
                s += j;
        }
        if (s == i) /*判断因子这和是否和原数相等*/
            cout << i << endl;
    }
    return 0;
}

如有帮助,望采纳!谢谢!