как получить список возможных чисел с заданным числом факторов в python? - PullRequest
0 голосов
/ 05 апреля 2020

Я могу получить факторы и количество факторов данного числа:

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)))

Это дает следующий вывод:

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

14

Но как я могу сделать обратное? Например: если у меня число факторов = 4, возможный список должен быть [6, 10, 14, 21, ...], где мы можем ограничить максимальное целое число в списке.

Ответы [ 3 ]

0 голосов
/ 05 апреля 2020

вы можете использовать:

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
0 голосов
/ 05 апреля 2020

Код Использование кода 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))

Выход

[6, 8, 10, 14, 15, 21, 22, 26, 27]
0 голосов
/ 05 апреля 2020

Попробуйте:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...