Python 练习(初来乍到)

本文深入探讨了完全数的概念及其数学特性,通过两个不同的Python函数实现了完全数的判断和寻找,展示了如何使用编程解决数学问题。同时,分享了作者在学习《机器学习实战》过程中的感悟,强调了编程语言的逻辑性和条理性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完美数字

问题描述:

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如,第一个完全数是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。

Solution (other’s)

def isPerfectNumber(n):
    a = 1
    b = n
    s = 0

    while a < b:
        if n % a == 0:
            s += a + b
        a += 1
        b = n / a

    if a == b and a * b == n:
        s += a

    return s - n == n

for k in range(2, 10000):
    if isPerfectNumber(k):
        print k

上面的程序是其他人的解法,有点复杂,自己编的在下面。

Solution (mine):

def perfectnumber(n):     #定义函数
    a=[]                  #定义一个用于放约数的空数组(注意,定义在函数外面会出错)           
    for i in range(1,n):
        if n%i==0:
            a.append(i)     #将所有约数添加到a数组中
    return sum(a)==n        #所有约数求和若等于n

for b in range(1,10000):
    if perfectnumber(b):     
        print b
6
28
496
8128

这几天在学习《机器学习实战》,kNN,决策树和朴素贝叶斯已经看了,原理都很容易理解,代码开始很费劲但是边学边查也能看得懂了,不过真的自己敲还是有难度。感悟就是,程序虽然看上去密密麻麻,但是可以变得井井有条,一个个函数块的创建和调用,可以瞬间让你思路清晰。语言真的很神奇,学好一门语言需要逻辑清晰有条理,这些是一种思维方式、习惯,要体会、要培养。

第一遍不细究代码,重点看各种算法的原理。自己敲代码的时候一定来这做笔记!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值