21xrx.com
2024-12-23 00:40:54 Monday
登录
文章检索 我的文章 写文章
如何用C语言数组求1000以内完数
2023-06-16 18:22:28 深夜i     --     --
完数 C语言 数组 因子 循环

完数,是指一个数等于它所有因子(不包括自身)之和的数。比如,6是完数,因为6的因子有1、2、3,而1+2+3=6。而7就不是完数,因为它只有1和7两个因子,1≠7。

如何用C语言数组求1000以内的完数呢?我们可以循环1到1000,对于每个数,遍历它的因子,并将它们相加,判断结果是否等于这个数。

代码实现如下:


#include

int main()

{

  int num, sum;

  for (num = 1; num <= 1000; num++)

  {

    sum = 0;

    for (int i = 1; i < num; i++)

    {

      if (num % i == 0)  // 判断i是否是num的因子

      {

        sum += i;  // 累加因子

      }

    }

    if (sum == num)  // 判断和是否等于num

    {

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

    }

  }

  return 0;

}

  
  

评论区

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