21xrx.com
2024-12-22 23:34:56 Sunday
登录
文章检索 我的文章 写文章
使用C语言的数组来计算1000以内的完数
2023-06-17 02:41:07 深夜i     --     --
完数 数组 C语言 因子 累加

完数是指一个数恰好等于它的因子之和,例如6的因子是1、2、3,1+2+3=6,所以6是完数。那么如何用C语言的数组来计算1000以内的完数呢?

首先,我们需要定义一个数组来存储每个数的因子之和,可以先将数组中的每个元素都初始化为0。然后,从2开始循环到1000,对于每个数,我们都需要从1到它本身-1的范围内找到它的因子,并将这些因子累加到数组中。最后,我们只需要判断每个数对应数组中的元素是否等于该数本身即可判断其是否为完数。

实现完数计算的C语言代码如下:


#include

int main() {

  int n, i, j, sum;

  int factors[1000] = {0}; // 数组初始化为0

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

    sum = 0;

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

      if (i % j == 0) {

        sum += j;

      }

    }

    factors[i] = sum; // 将每个数的因子之和存储到数组中

  }

  // 输出1000以内的完数

  for (n = 2; n <= 1000; n++) {

    if (factors[n] == n) {

      printf("%d是完数\n", n);

    }

  }

  return 0;

}

通过以上代码运行,我们可以得到1000以内的所有完数,其中最小的完数是6,最大的完数是496。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复