#include <stdio.h>
void 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++)
/SPACE/
if(【?】)
{ s=s+j ;
/SPACE/
【?】=j ;
}
if(s!=0&&s==m)
{ /SPACE/
for(j=0 ; 【?】 ; j++)
printf("%4d",a[j]) ;
printf(" =%4d\n",i) ;
}
}
}
修改如下:
#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(i%j==0) //如果这个整数能被小于它的数整除,说明是他的因子
{
s=s+j ;
a[k++]=j ; //把这个因子存入数组
}
if(s!=0&&s==m)
{
for(j=0 ; j<k ; j++) //打印存这个整数因子数组里的所有因子 ,上面的循环里的k记录了这个数组的所有因子的个数
printf("%4d",a[j]) ;
printf(" =%4d\n",i) ;
}
}
}