day13

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。

程序:

#include <stdio.h>

main()

{

static int k[10];

int i,j,n,s;

for(j=2;j<1000;j++)

{

n=-1;

s=j;

for(i=1;i<j;i++)

{

if(j%i==0)

{

n++;

s=s-i;

k[n]=i;

}

}

if(s==0)

{

printf("%d is a wanshu ",j);

for(i=0;i<n;i++)

printf("%d ",k[i]);

printf("%d\n",k[n]);

}

}

}

解题思想:先把这个数取出,然后从2到这个数时间依次取数判断是不是因数,若是,则减去这个数,若不是,则继续判断下个数是不是因数,最后看结果是不是0来判断它是不是”完数”。

程序输出样式:

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容