。,@#%''“解答”

#include<stdio.h>main0int i,j,m,s,k,a[100];for(i=1;i<=1000;i++)m=i;s=0;k=0;for(j=1;j<m;j++)/SPACEif(【?】)s=s+j;/SPACE/【?】=j;if(s!=0&&s==m)/SPACEfor(j=0;【?】;j++)printf("%4d",a[j]);printf("=%4d' n",i);
编写程序,输出 1000 以内的所有完数及其因子。
说明:所谓完数是指一个整数的值等于它的因子之和。
例如“ 6 的因子是 1 、 2 、 3 ,而 6=1+2+3 ,故 6 是 一个完数。

你题目的解答代码如下:

#include<stdio.h>

int main()
{
    int i,j,m,s,k,a[100];
    for(i=1;i<=1000;i++){
        m=i;
        s=0;
        k=0;
        for(j=1;j<m;j++)
            if(m%j==0){
                s=s+j;
                a[k++]=j;
            }
        if(s!=0&&s==m){
            for(j=0;j<k;j++)
                printf("%4d",a[j]);
            printf("=%4d\n",i);
        }
    }
    return 0;
}

img

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