zoukankan      html  css  js  c++  java
  • 【编程小题目8】求解完数

    题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出100以内的所有完数。

     分析:本质还是求质因数。

    #include <iostream>

    using namespace std;

    bool IsPerfect(int n)
    {
      int i, j = 0;
      int Temp = n,Sum = 1;
      int arr[100] = {'0'};

      for(i = 2; i <= n; i++)
      {
        if(i == n)
        {
          arr[j++] = i;
        }
        else
        {
          while (n % i == 0)
          {
            arr[j++] = i;
            n = n / i;
          }
        }
      }
      for(i = 0; arr[i] != 0; i++)
      {
        Sum += arr[i];
      }

      if(Temp == Sum)
      {
        return true;
      }
      else
      {
        return false;
      }

    }

    int main()
    {
      const int n = 100;

      for(int i = 1; i <= n; i++)
      {
        if(IsPerfect(i))
        {
          cout << i;
          if(i % 5 == 0)
          {
            cout << endl;
          }
        }
      }
      cout << endl;

      return 0;
    }

  • 相关阅读:
    拥有最多糖果的孩子
    求1+2+…+n
    网络-中间代理
    Header中的Referer属性表示
    ios13.4post请求出现网错错误 network err
    10.8&10.10
    9.23&9.27
    9.16&9.19
    校内模拟赛划水报告(9.9,9.11)
    男人八题 划水题解
  • 原文地址:https://www.cnblogs.com/FoxShark/p/4441747.html
Copyright © 2011-2022 走看看