Какой самый эффективный способ найти все факторы числа в Python? - PullRequest
122 голосов
/ 23 июля 2011

Может кто-нибудь объяснить мне эффективный способ найти все факторы числа в Python (2.7)?

Я могу создать алгоритмы для этой работы, но я думаю, что это плохо закодировано, и занимаетслишком долго, чтобы выполнить результат для больших чисел.

Ответы [ 22 ]

0 голосов
/ 11 августа 2018

Я считаю, что это самый простой способ сделать это:

    x = 23

    i = 1
    while i <= x:
      if x % i == 0:
        print("factor: %s"% i)
      i += 1
0 голосов
/ 12 марта 2017

Я думаю, что для удобства чтения и скорости @ решение Oxrock является лучшим, поэтому вот код, переписанный для Python 3 +:

def num_factors(n):
    results = set()
    for i in range(1, int(n**0.5) + 1):
        if n % i == 0: results.update([i,int(n/i)])
    return results
...