zoukankan      html  css  js  c++  java
  • 寻找全然数

    问题


    寻找全然数。


    思路说明


    所谓全然数,从维基百科的全然数词条中得到:

    [全然数,又称完美数或完备数,是一些特殊的自然数:它全部的真因子(即除了自身以外的约数)的和,恰好等于它本身。全然数不可能是楔形数。 比如:第一个全然数是6。它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6,恰好等于本身。第二个全然数是28,它有约数1、2、4、7、14、28,除去它本身28外。其余5个数相加。1+2+4+7+14=28,也恰好等于本身。后面的数是496、8128。]

    很多其它全然数内容请看该词条。



    所以,要找一个全然数的解决思路是:

    1. 找出一个数的全部因数
    2. 验证这些因数的和是否等于这个数,假设等于。就是全然数。

    解决(python)

    #!/usr/bin/env python
    #coding:utf-8
    
    #找出一个数的因数
    def factors(n):
        #return [i for i in range(1,n/2+1) if n%i == 0]
        #假设不过为了得到因数。能够用上面的
        #假设是配合以下全然数,最好使用以下的。

    由于在以下少循环一次,1肯定是不论什么整数的因数 return [i for i in range(2,n/2+1) if n%i == 0] #找出某个数n以内的全部全然数,即在[1,n]内(含n) def perfect(n): #从上面的factors中得到的因数列表中,少1,因此在求因数和的时候,要把1加上。 return [i for i in range(2,n+1) if (sum(factors(i))+1)==i] if __name__=="__main__": print perfect(30)


    声明:

    本文为阉割版(超级链接都删除了,原因是假设有则不能公布,为什么呢?你懂得)。要看完整版,能够从右边栏目中进入到我的github专栏。

查看全文
  • 相关阅读:
    web前端的发展态势
    AngularJs 简单入门
    css代码优化篇
    git提交报错:Please make sure you have the correct access rights and the repository exists.
    Activiti工作流框架学习
    遍历map集合的4种方法
    js设置日期、月份增加减少
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    webservice_rest接口_学习笔记
    相互匹配两个list集合+动态匹配${}参数
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10943981.html
  • Copyright © 2011-2022 走看看