#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;
}
如有帮助,望采纳!谢谢!