c语言找到完全数并输出因子

要找到完全数,但是怎么输出他的因子呢?。例如6=1+2+3。按照6,its factors are 1,2,3格式输出。只会判断不会输出,范围是1到1000

#include <stdio.h>

int main() {
    int i, j, sum;
    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: ", i);
            for (j = 1; j <= i/2; j++) {
                if (i % j == 0) {
                    printf("%d ", j);
                }
            }
            printf("\n");
        }
    }
    return 0;
}



#include <stdio.h>
 
int func(int n,int *yz,int *count)
{
    int sum = 0;
    *count = 0;
    for(int i=1;i<n;i++)
        if(n%i==0)
        {
           yz[*count] = i;
            (*count)++;
           sum += i;
       }
    if(sum == n)
        return 1;
    return 0;
}
int main() 
{
    int i,j,yz[100],m=0;
    for (i = 1; i <= 1000; i++) 
    {
        if(func(i,yz,&m) == 1)
        {
            printf("%d,its factors are 1",i);
            for(j=1;j<m;j++)
                printf(",%d",yz[j]);
            printf("\n");
        }
    }

    return 0;
}