循环计算问题,输出完全数

求出1000 以内的所有"完全数"并输出它们(若n 的包括1 但不包括n 本身的所有因子之和等于n,
则n 为"完全数"
。如:6=1+2+3;28=1+2+4+7+14)。

img

写的好乱,有da lao 能看看为啥运行不了吗? 谢了

all=0的位置,以及判断因子的逻辑修改了一下

#include<stdio.h>
int main() {
    int a, t, all, i;
    for (a = 3; a <= 10; a++) {
        t = a;
        i = 2;
        all = 0;
        while (i < t) {
            if (t % i == 0) {
                all += i;
            }
            i++;
        }
        if ((all + 1) == a) {
            printf("%d ", all + 1);
        }
    }
    return 0;
}