完数:编程序找出1000之内的所有完数,并按下面的格式输出其因子
一个数如果恰好等于它的因子之和,这个数就称为“完数”
例如:6的因子为1、2、3,而6 = 1 + 2 + 3,因此6是“完数”
解题思想:
循环除以比自己小的每一个数,将能够整除的数放入数组,然后所有数字相加等于这个数就是完数。
void Function2() { int sum=0; printf("完数: "); int a[50]; int i=0,j=0,k=0,t=0; for (i=1;i<1000;i++) { k=0; sum = 0; for (j=1;j<i;j++) { if (i%j==0) { sum += j; a[k++]=j; } } t=k; if(sum == i) { cout<<i<<"->"; for (k=0;k<t;k++) { cout<<a[k]; if (k<t-1) { cout<<","; } } cout<<endl; } } }