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;
    }

  • 相关阅读:
    迭代合并排序算法
    appendChild和insertBefore的区别
    使用定时器处理数组
    正则表达式 删除string首尾的空白
    图片滚动
    数组合并法(IE7性能优化)
    赋值取值+arguments
    条件预加载(conditional advanceloading)
    Just a Note~
    腾讯马拉松复赛第一场
  • 原文地址:https://www.cnblogs.com/FoxShark/p/4441747.html
Copyright © 2011-2022 走看看