簡體   English   中英

如何在 python 中獲取具有給定數量因子的可能數字列表?

[英]how to get list of possible numbers with given number of factors in python?

我可以得到給定數字的因子和因子數:

def all_factors(x):
    factors = []
    for i in range(1, x + 1):
        if x % i == 0:
            factors.append(i)
    return factors
print(all_factors(320))
print(len(all_factors(320)))

它給出了以下 output:

[1、2、4、5、8、10、16、20、32、40、64、80、160、320]

14

但是,我該如何做相反的事情呢? 例如:如果我的因子數 = 4,則可能的列表必須是 [6, 10, 14, 21, ...] 我們可以限制列表中的最大 integer。

嘗試:

n =int(input("Enter the limit: "))
factno = int(input("No of factors: ")) # here 4
listing = []
for i in range(1,n+1):
    #Your code here to find factors and to add then to a list named "factors'
    factors = []
    for j in range(1, i + 1):
        if i % j == 0:
            factors.append(j)
    if len(factors) == factno:
        listing.append(i)
print(listing)

您可以使用:

def all_factors(x, number_factors):
    factors = []

    for i in range(1, x + 1):
        if len(factors) == number_factors:
            break 

        if x % i == 0:
            factors.append(i)
    return factors

代碼使用你的 all_factors 代碼

def reverse_factors(n, max_):
  # Loops through numbers from 1 to max_ to check
  # number of factors. Keeps the ones with the desired 
  # number of factors as determined by len(all_factors(x))
  return [x for x in range(1, max_+1) if len(all_factors(x))  == n]

測試

# Numbers with 4 factors up to 30
print(reverse_factors(4, 30))

Output

[6, 8, 10, 14, 15, 21, 22, 26, 27]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM