Python是一種常用的編程語言,擁有豐富的庫和強大的功能。其中,求正整數的真因子數也是Python的一項常用操作,今天我們就來介紹一下Python如何求出真因子數。
def factors(n): # 用集合去重 return set(x for tup in ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0) for x in tup if x != n) print(factors(12))
在代碼中,我們定義了一個名為factors的函數,傳入一個整數n作為參數。在函數內部,我們使用三目表達式生成一個包含n的所有因數的列表。由于如果n是平方數,則int(n ** 0.5)的值只能取到這個平方數,故需要加1。然后用集合去重,并且去掉了n自身,因為n不能作為自己的因數。最后返回真因子數。
我們以12為例,執行代碼后輸出的結果是{1, 2, 3, 4, 6}。說明12有5個真因子,分別是1、2、3、4和6。所以我們可以通過這個函數求出任何正整數的真因子數,并且可以靈活運用在其他問題中。