首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Python 完全數判斷:輸入處理與因數累加邏輯實作

     編輯:程式設計綜合問答

完全數:真因子 (不含自身) 之和等於自身。如 6 = 1+2+3、28 = 1+2+4+7+14。

完整程式

def is_perfect(n: int) -> bool:
    if n < 2: return False
    s = 1
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            s += i
            j = n // i
            if j != i: s += j
    return s == n

def main():
    try:
        n = int(input("請輸入正整數: ").strip())
        print(f"{n} {'是' if is_perfect(n) else '不是'}完全數")
    except ValueError:
        print("輸入無效,請輸入整數")

if __name__ == "__main__":
    main()

關鍵點

  • input() 回傳字串,需 int() 轉換並 try/except 捕獲非數字輸入。
  • 因數枚舉至 sqrt(n),成對累加,時間複雜度 O(√n)。
  • 排除 n 自身,故初始和設 1 (1 是所有 n>1 的真因子)。

此寫法兼顧正確性、效能與輸入健壯性,適合作業與面試白板題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved