代码及思路如下:
int main()
{
int i, j, s;
for (i = 2; i <= 1000; i++)
{
s = 0;
for (j = 1; j < i; j++)
if ((i % j) == 0)//1到1000之间的数
s += j;//S为因子之和
if (s == i)//判断选择的数是否为所有因子的和
{
printf("i=%d ,它的因子是", i);
// Step2:
//进入Step1的for循环之后,开始对2~1000每一个数进行分析。
//首先判断 i 是否存在因子,我们再给出一次for循环(j),让 i 分别对1~自身进行取余,即可判断 i 的因子;
//如果 i % j == 0 ,我们把这个因子累加,以便后续判断因子之和是否等于数字本身。(所以还应在第二次for循环前给出变量sum)
//给出代码
for (j = 1; j < i; j++) //j(因子) 对该数因子列举条件的判断;
if ((i % j) == 0)
printf("%d ", j);
printf("\n");
}
}
return 0;
}