一个数如果恰好等于它的真因子之和,这个数就称为“完数”.

例如 6=1+2+3.编程找出1000以内的所有完数

#include <stdio.h>

int Is_wdata(int n)
{
    
    
  int i = 0;
  int sum = 1;            //每个数都含有因子1
  for (i = 2; i < n; i++) //获取(除去1和本身)其他因子
  {
    
    
    if (n % i == 0) //判断是否为因子
    {
    
    
      sum = sum + i; //求真因子之和
    }
  }
  return sum;
}

int main()
{
    
    
  int i = 0;
  int k = 0;
  for (i = 2; i < 1000; i++)
  {
    
    
    k = Is_wdata(i);
    if (i == k)
      printf("%d ", i);
  }

  return 0;
}

运算结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/and_what_not/article/details/113825125