C语言求完数并按格式输出

img

c语言求完数,一个数恰好等于其因子之和称之为完数,求一千以内的完数并按格式输出,怎么输出不会啊

通过枚举1到1000内的每一个正整数,然后计算其因子之和是否等于该数本身来判断是否为完数。

#include <stdio.h>

int main()
{
    int i, j, sum;

    printf("1000之内的完数:\n");

    for (i = 1; i <= 1000; i++) {
        sum = 0;

        // 计算因子之和
        for (j = 1; j <= i / 2; j++) {
            if (i % j == 0) {
                sum += j;
            }
        }

        // 判断是否为完数并输出
        if (sum == i) {
            printf("%d = 1", i);
            for (j = 2; j <= i / 2; j++) {
                if (i % j == 0) {
                    printf(" + %d", j);
                }
            }
            printf("\n");
        }
    }

    return 0;
}

6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248