21xrx.com
2025-03-23 20:29:15 Sunday
文章检索 我的文章 写文章
C语言实现一千以内的完数
2023-06-15 20:56:39 深夜i     24     0
C语言 完数 因子和 循环 判断 输出

在数学中,完全数是指一个数恰好等于除它本身外的正因子之和。例如,6是完全数,因为6=1+2+3。本篇文章将介绍如何使用C语言来计算一千以内的所有完数。

首先,我们需要明确如何计算一个数的因子和。我们可以使用循环来找到一个数的所有因子,然后求和。下面是一个示例代码:

int sumOfFactors(int n){
  int sum = 0;
  for(int i=1; i
    if(n%i==0){
      sum += i;
    }
  }
  return sum;
}

接下来,我们可以使用上述代码来判断一个数是否为完数。如果一个数的因子和等于它本身,那么它就是完数。下面是判断一个数是否为完数的代码:

bool isPerfect(int n){
  return sumOfFactors(n) == n;
}

最后,我们可以使用一个循环来计算一千以内的所有完数,并输出它们。下面是完整代码:

#include 
#include 
int sumOfFactors(int n){
  int sum = 0;
  for(int i=1; i
    if(n%i==0){
      sum += i;
    }
  }
  return sum;
}
bool isPerfect(int n){
  return sumOfFactors(n) == n;
}
int main(){
  printf("一千以内的完数有:\n");
  for(int i=1; i<=1000; i++){
    if(isPerfect(i)){
      printf("%d ", i);
    }
  }
  printf("\n");
  return 0;
}

运行结果如下:

一千以内的完数有:
6 28 496

由此可知,一千以内的完数只有6、28和496三个。

  
  

评论区