C 语言丰数程序

2025 年 1 月 7 日 | 阅读 3 分钟

在本文中,我们将讨论 C 语言中的盈数程序及其工作原理和示例。但在讨论其实现之前,我们必须了解什么是盈数。

什么是盈数?

如果一个数的所有真因数之和(记作 sum(n))大于该数 n 的值,则称该数为盈数。盈余是这两个量之间差值的结果。

在数学上,如果满足以下条件,则称一个数为盈数:

在这里,我们将确定给定的数字 n 是否为盈数。

12、18、20、24、30、36、40、42、48、54、56、60 和 66 是最初的几个盈数。

工作原理:-

对于用户输入,num

  • 找出 num 的所有真因数
  • 计算这些因数的和
  • 如果 sum > num:盈数
  • 否则,不是盈数

方法 1

对于用户输入,num

  • 初始化 sum = 0
  • 在迭代 (i) 中运行一个循环
  • 对于每个 i,检查它是否是 num (num % i == 0) 的因数
  • 如果是,则将其添加到 sum 中
  • 比较 sum 和 num。如果 sum > num,它就是一个盈数。

程序

我们以一个例子来说明 C 语言中的盈数

输出

Abundant number program in C

复杂度分析

时间复杂度: O(N)

空间复杂度:O(1)

方法 2:[使用观察法]

  • 此方法利用了所有因子成对出现的观察结果。
  • 所有因子成对出现。
  • 对于 n = a * b(对于每个 a,存在一个唯一的 b)

示例 100 (1,100), (2, 50), (4, 25), (5, 20), (10, 100)

程序

我们再举一个例子来说明 C 语言中的盈数

输出

Abundant number program in C