【Leetcode】Perfect Number

We define the Perfect Number is a?positive?integer that is equal to the sum of all its?positive?divisors except itself.

Now, given an?integer?n, write a function that returns true when it is a perfect number and false when it is not.

class Solution(object):

? ? def checkPerfectNumber(self, num):

? ? ? ? """

? ? ? ? :type num: int

? ? ? ? :rtype: bool

? ? ? ? """

? ? ? ? if num <=0:

? ? ? ? ? ? return False

? ? ? ? n = int(num**0.5)

? ? ? ? sumN = 0

? ? ? ? for i in range(2, n+1):

? ? ? ? ? ? if num%i==0:

? ? ? ? ? ? ? ? sumN = sumN + i + num/i

? ? ? ? if num**0.5==n:

? ? ? ? ? ? sumN -= n

? ? ? ? sumN += 1? ?

? ? ? ? return num==sumN

1 循環停止條件是sqrt(n)

2 然后從2開始到sqrt(n)依次遍歷,最后再加上1

3 還要注意,如果n的平方根恰好是一個整數的話,,sum只能加一次這個平方根

4 注意還要減去它自己

5?if num%i==0:

? ? ? ? ? ? ? ? sumN = sumN + i + num/i

這里是num,不要寫成n了

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在C語言中,五種基本數據類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,417評論 0 2
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,776評論 0 33
  • 無戒小島主題討論第二彈問:日更過半,你遇到日更最大的困難是什么? 于我個人而言,大概日更本身就是最大困難。無方法、...
    路小山閱讀 419評論 5 4
  • 1.OC中的nil表示空指針。Swift中的nil 表示只空值。 2.元組:函數要返回復雜的數據類型,為了簡化。 ...
    丘山Ivan閱讀 204評論 0 0
  • 回想過去的點點滴滴,我們也有美好回憶。我現在最大的愿望就是我們倆能個自安好,誰也別在想起以前對對方的傷害,如果在給...
    90后的幼兒園老師閱讀 249評論 0 2