C语言编程,完数问题!

来源:百度知道 编辑:UC知道 时间:2024/06/25 07:11:05
一个数如果恰好等于它的因子之和,这个数称为完数。例如,6的因子是1,2,3。而6=1+2+3,因此6是完数。编程序找出1000之间的所有完数,并按下面格式输出其因子:
6 its factors are 1,2,3

#include<stdio.h>
int main()
{int num,k,sum;
for(num=6;num<=1000;num++)
{sum=0;
for(k=1;k<num;k++)
if(num%k==0) sum+=k;
if(num==sum)
{ printf("%d its factor are 1",num);

for(k=2;k<num;k++)
if(num%k==0) printf(",%d",k);
printf("\n");}
}
return 0;
}

#include <iostream.h>

int main()
{
int number=1000;
int i=2,k,z,sum=0;

while( i<=number)
{ int j=0,sum=0;

int *p=new int[j];
for(k=i;k>=1;--k)
if(i%k==0)
{ p[j++]=i/k;}

for(z=0;z<j;++z)
sum+=p[z];sum-=i;

if(sum==i)
{ cout<<i<<" its factors are\n";
for( k=0;k<j-1;++k)
cout<<p[k]<<"