21xrx.com
2025-03-21 14:01:57 Friday
文章检索 我的文章 写文章
如何用C语言编写求完数的函数
2023-06-15 20:37:48 深夜i     --     --
完数 真因子 遍历 函数 C语言

在数学中,完数(又称完全数)是指一个正整数,它的所有真因子(即除了本身以外的约数)的和等于它本身。例如,6是一个完数,因为6的所有真因子1、2、3的和为6。

在C语言中,我们可以设计一个函数来判断一个数是否为完数。首先,我们可以遍历该数的所有真因子,并把它们的和与该数进行比较。如果相等,则该数为完数,否则不是。

代码如下:

#include 
int isPerfectNumber(int n) {
  int sum = 0; 
  for (int i = 1; i < n; i++) { // 遍历n的所有真因子
    if (n % i == 0)
      sum += i; // 如果i是n的真因子,则加入到sum中
  }
  // 如果sum等于n,则n为完数,返回1,否则返回0
  return sum == n ? 1 : 0; 
}
int main() {
  int n;
  printf("请输入一个正整数:");
  scanf("%d", &n);
  if (isPerfectNumber(n))
    printf("%d是完数", n);
  else
    printf("%d不是完数", n);
  return 0;
}

  
  

评论区