1. 程式人生 > >完全數--Python

完全數--Python

去掉 per pytho num n) 完美數 fec perfect 例如

  如果一個數恰好等於它的因子之和,則稱該數為“完全數” [1] 。各個小於它的約數(真約數,列出某數的約數,去掉該數本身,剩下的就是它的真約數)的和等於它本身的自然數叫做完全數(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。第三個完全數是496,有約數1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9個數相加,1+2+4+8+16+31+62+124+248=496。後面的完全數還有8128、33550336等等。

def isPerfectNum(n):
    a = 1
    b = n
    sum = 0
    while a < b:
        if n % a ==0:
            sum += (a + b)
        a += 1
        b = n / a
    if (a == b) and (n % a == 0):
        sum += a
    return (sum - n) == n

這個函數接受一個整數,如果這個數是完全數就返回真,如果不是完全數就返回假

完全數--Python