`
luoping0425
  • 浏览: 109065 次
  • 性别: Icon_minigender_2
  • 来自: 赣州
文章分类
社区版块
存档分类
最新评论

算法,完数

阅读更多

10.10 一个数如果恰好等于它的因数之和(包括1,但不包括这个数本身),这个数就称为“完数”。

 

例如:28的因子是1、2、4、7、14,而28=1+2+4+7+14,因此28是“完数”。

用ruby实现:

def perfect_number(n=100)

  for i in (2..n)
    s = 0
    for j in (1...i)
      if i%j==0
        s  = s + j
      end
    end

    puts "#{i} is perfect number!\n" if i == s
  end
end

perfect_number(1000)

#6 is perfect number!
#28 is perfect number!
#496 is perfect number!

 可参考:http://baike.baidu.com/view/640632.htm

 

这个算法昨天就写出来了,但是因为在学习使用linux和vim,调试还是花了很长时间。

0
0
分享到:
评论

相关推荐

    用C++语言实现完数求法

    ### 使用C++实现完数求法 #### 一、引言 在数学中,一个自然数如果恰好等于它的真因子(即除了自身以外的因子)相加之和,则该数被称为完数(Perfect Number)。例如,6就是一个完数,因为6 = 1 + 2 + 3;另外28也...

    C语言面试题

    9. **完数概念及其查找算法** 10. **物理模型中的数学计算** 11. **排列组合的计算方法** 12. **分段函数与奖励制度设计** 13. **完全平方数的检测与应用** 14. **日期转换与闰年处理** 15. **三数排序的逻辑实现** ...

    完数编程——C语言版

    主要内容包括完数的定义、算法设计思路、优化技巧以及完整的C语言实现。 #### 二、完数定义 在数学中,完数(perfect number)是指一个正整数等于其所有真因子(即除了自身以外的因子)之和。例如,6就是一个完数,...

    如何判断完数

    完数的概念在数学中具有一定的理论价值,而在编程领域,它是一个有趣的计算问题,可以用来锻炼算法思维和程序设计能力。 要编写一个程序来判断一个数是否为完数,我们首先需要了解基础的因数分解概念。在编程中,这...

    求完数的源码

    在编程中,我们可以通过编写特定的算法来寻找一定范围内的完数。 在标题和描述中提到的"求完数的源码",指的是编写一段程序,用于找出1到1000之间的所有完数。通常,这种程序会用到循环结构(如for或while)、条件...

    1000以内的完数

    ### 完数的概念 在数学领域,完数(Perfect Number)是一种特殊的自然数,它所有的真因数(即除了自身以外的因数)之和恰好等于该数本身。例如,6是一个完数,因为它的真因数有1、2、3,而1+2+3=6。 ### C语言实现...

    C#.NET找完数

    完数是指一个正整数,它的所有真因数(即除了自身以外的因数)之和等于它本身。例如,6是第一个完数,...当然,实际应用中,为了提高效率,可以对算法进行优化,比如使用更有效的因数查找策略或者利用已知的完数特性。

    C#中实现1到100的完数

    5. **优化与效率问题**:为了提高算法效率,内层循环只需运行到 `a` 的一半(`c=a/2`),这是因为如果存在一个大于 `a/2` 的因子,那么必然存在一个对应的因子小于 `a/2`。 #### 完善后的代码示例 ```csharp using...

    算法分析与设计课程中的完美数算法

    在计算机科学领域,算法是解决问题的关键,而算法分析与设计是理解这些算法效率、性能以及优化策略的核心课程。"完美数"是算法学习中的一个经典主题,它涉及到数学和计算机科学的交叉点。本篇文章将深入探讨完美数的...

    查找1到n的完数(c语言版)

    在实际应用中,可以通过优化算法(如仅检查到`sqrt(i)`的因子),减少不必要的计算,提高程序效率。 ### 结论 这段C语言代码有效地实现了查找1到n之间完数的功能,不仅体现了对完数概念的理解,还展示了基本的编程...

    求完数的问题 用c#编写的

    在C#中,我们可以设计一个简单的算法来查找并打印出指定范围内的所有完数。以下是一种可能的实现方法: ```csharp using System; class Program { static void Main() { Console.WriteLine("请输入一个正整数...

    在C#中用while循环计算出完数

    为了提高性能,可以考虑优化算法,比如减少不必要的计算或使用更高效的算法来寻找因子。 通过这个例子,我们不仅学习了如何在C#中实现完数的计算,还了解了如何使用基本的循环结构来解决问题。这对于初学者来说是...

    LabView 求一万以内的完数的源代码

    LabView 是一款由美国国家仪器...总之,这个LabView实例不仅教导我们如何寻找完数,还展示了如何在LabView环境中组织和实现算法。通过学习和实践,你可以进一步提升在LabView上的编程技能,应用于更多的实际问题解决。

    判断并输出1000以内完数

    对于更大的范围,可能需要优化算法,例如使用更高效的方法来查找因数或者使用已知的完数性质来减少计算量。此外,压缩包中的文件6-7.frm、6-7.vbp和6-7.vbw是VB的项目文件,其中6-7.frm包含窗体设计,6-7.vbp是项目...

    Java实现特定范围的完数输出算法示例

    "Java实现特定范围的完数输出算法示例" 本文主要介绍了Java实现特定范围的完数输出算法,简单说明了完数的概念、计算原理并结合实例形式分析了Java针对给定范围内的完数输出操作实现技巧。 一、完数的概念 完数是...

    VB常用算法大全:VB常用算法大全

    - 线性查找:从头到尾逐个检查元素,直到找到目标或者遍历完数组。 - 二分查找:适用于有序数组,每次将查找区间减半,提高查找效率。 - 哈希查找:通过哈希函数快速定位元素,但可能有哈希冲突需要解决。 3. **...

    找出1000以内所有完数并显示

    标题中的“找出1000以内所有完数并显示”是一项编程任务,旨在寻找1到1000之间所有的完数。完数是指一个数的所有真因数(除了它自身之外的因数)之和等于它本身的数。例如,6是第一个完数,因为它的真因数有1、2和3...

    c语言实现打印1000之内的所有“完数”

    本程序用一个小算法来实现打印1000内的所有“完数”

    计算完数的C程序 应用于TC 或VC6.0的平台

    完数是指一个正整数,它的所有真因数(即除了自身以外的因数)之和等于它...同时,这也能帮助我们掌握基本的算法思维,包括因数分解和优化计算过程。对于编程初学者来说,这是一个很好的实践项目,有助于提升编程技能。

    C语言求完数

    3. **效率改进**:对于较大的数,可以进一步优化算法,例如通过减少内层循环的次数来提高效率。 4. **异常处理**:增加适当的错误处理机制,比如对输入范围进行验证等。 通过以上分析,我们可以看到这段代码有效地...

Global site tag (gtag.js) - Google Analytics