#include<stdio.h>
int main()
{
int i, j, s, n; /*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/
int a[100],l;
scanf("%d", &n); /* n的值由键盘输入*/
for( i=2; i<n; i++ )
{
l=0;
s=0; /*保证每次循环时s的初值为0*/
for( j=1; j<i; j++ )
{
if(i%j == 0) /*判断j是否为i的因子*/
{
s += j;
a[l++] = j;
}
}
if(s == i) /*判断因子这和是否和原数相等*/
{
printf("%d:", i);
for (j = 0; j < l; j++)
printf("\t%d", a[j]);
printf("\n");
}
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
弄俩个循环,外侧循环就是从2到你输入的n,内测循环从1开始判断一下是不是这个数因子求和比较,
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!