一天一个算法:完数
完数:编程序找出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;
}
}
}

浙公网安备 33010602011771号