<c语言经典100例>c17 完数

来源:互联网 发布:云上贵州大数据秦晓东 编辑:程序博客网 时间:2024/04/30 20:11
/* 【程序19】 c17.c* 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3. 找出1000以内的所有完数。  * 程序分析:什么是数的因子?因子就是所有可以整除这个数的数,不包括这个数自身.*/#include <stdio.h>int main(int argc, char *argv[]){int n;// 找到能被n整除的数并按顺序存储到数组buf中for (n=2; n<=1000; n++){int buf[100] = {};int i=1, sum=0, flag = 0;while (i != n){if (n%i == 0){buf[flag] = i;flag++;}i++;}int j;for (j=0; j<=flag; j++){sum += buf[j];}if (sum == n)printf("完数:%d\n", n);}return 0;}


测试结果程序:

#include <stdio.h>int main(int argc, char *argv[]){int n;printf("请输入:");scanf("%d=", &n);int i, sum=0;for (i=1; i<n; i++){if (n%i == 0){  sum += i;   printf("%d ", i);}}printf("\n sum=%d\n", sum);return 0;}