21xrx.com
2024-11-22 06:32:06 Friday
登录
文章检索 我的文章 写文章
C++编写程序判断完数
2023-07-03 13:55:40 深夜i     --     --
C++ 程序 判断 完数 数字

完数是指一个数恰好等于它的所有因子(除了本身)之和的数,比如6是完数,因为6的因子为1、2、3,1+2+3=6,而8不是完数,因为8的因子为1、2、4,1+2+4=7。

现在我们来看一下如何用C++编写一个程序判断完数。首先,我们需要输入一个整数n,然后判断n是否为完数。判断方法是,从1到n-1遍历每一个数i,如果n能够被i整除,那么i就是n的一个因子,将i加入一个数组中,并累加这个数组里的所有数。最后,判断这个累加的数是否等于n,如果相等,那么n就是完数,否则不是。

以下是完数的判断程序:


#include <iostream>

using namespace std;

int main()

{

  int n, sum = 0;

  cin >> n;

  int factors[100], count = 0;

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

  {

    if (n % i == 0)

    {

      factors[count++] = i;

      sum += i;

    }

  }

  if (sum == n)

  {

    cout << n << " is a perfect number." << endl;

    cout << "Factors: ";

    for (int i = 0; i < count; i++)

    {

      cout << factors[i] << " ";

    }

    cout << endl;

  }

  else

  

    cout << n << " is not a perfect number." << endl;

  

  return 0;

}

这个程序可以判断一个整数n是否为完数,并将它的因子输出。如果你运行这个程序并输入6,它会输出以下内容:


6 is a perfect number.

Factors: 1 2 3

这个程序的时间复杂度是O(n),因为它需要遍历从1到n-1的所有数。如果输入的n很大,程序的运行时间会很慢。但是由于完数比较少,我们可以将已知的完数保存在一个数组里,然后在程序中查找这个数组。这可以减少程序的运行时间。

到此为止,我们已经学会了用C++编写程序判断完数的方法。希望这篇文章能够对你有所帮助!

  
  

评论区

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