21xrx.com
2025-03-23 18:32:10 Sunday
文章检索 我的文章 写文章
C语言编程实现求解1000以内的完数及其因子
2023-06-18 07:08:55 深夜i     --     --
C语言编程 完数 因子 循环遍历 累加和 判断

完数,又称为完全数,是指一个数等于其所有因子之和,且不包括它本身。比如说6就是一个完数,因为6的因子为1、2、3,且1+2+3=6。那么问题来了,如何用C语言编程求解1000以内的完数及其因子呢?

首先,我们需要了解一个数的因子是什么。因子就是能够整除这个数的所有正整数,例如6的因子为1、2、3、6。在程序设计中,我们可以用循环遍历每个数,获取它的所有因子,并对它们求和,判断是否为完数。具体代码如下:

#include 
int main() {
  int i, j, sum;
  for (i = 1; i <= 1000; i++) {
    sum = 0; // 初始化累加和为0
    for (j = 1; j < i; j++) {
      if (i % j == 0) {
        sum += j; // 累加因子
      }
    }
    if (sum == i) {
      printf("%d是一个完数,它的因子为:", i);
      for (j = 1; j < i; j++) {
        if (i % j == 0) {
          printf("%d ", j); // 输出因子
        }
      }
      printf("\n");
    }
  }
  return 0;
}

程序中,我们定义了两个循环变量i和j,分别用于遍历每个数和获取它的因子。sum用于累加因子的和,判断该数是否为完数。如果是完数,我们会输出它的因子。

  
  

评论区