c语言求完全数

Python025

c语言求完全数,第1张

   完全数,又称完美数, 是一些特殊的自然数。它所有的真因子(即除了自身以外的约数的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的真因子之和,则称该数为“完全数”。第一个完全数是6,6=1 2 3=1+2+3.

/*完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)*/

#include<stdio.h>

void main()

{

int i,j,k,h,s,sum

int a[200]//20个是不够的

s=0

sum=0

for(i=2i<=1000i++)

{

s=0//此处s=0一定要加,因为前几次循环的时候s的值已经改变

k=0

for(j=1j<ij++)

{

if((i%j)==0){a[k]=jk++}

}

for(h=0h<kh++)

{

s+=a[h]

}

if(i==s){printf("%d ",i)sum++}

}

printf("完数的个数:%d\n",sum)

}

时间太紧,没注意程序的简洁性和效率,这个需要你自己改了!

#include <stdio.h>

void main(){

int s,i,j

for(s=2s<=1000s++)

{

j=0

for(i=s-1i>0i--)

{

if(s%i==0){j=j+i}

}

if(s==j)

{

printf("完数:%d the factors are ",s)

for(i=1i<si++)

{

if(s%i==0){printf("%d,",i)}

}

printf("\n")

}

}

}