"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como encontrar fatores de um número com eficiência em Python?

Como encontrar fatores de um número com eficiência em Python?

Publicado em 2024-11-08
Navegar:332

How to Find Factors of a Number Efficiently in Python?

Encontrando Fatores de um Número Eficientemente em Python

Determinar os fatores de um número é uma tarefa comum em vários domínios, e Python oferece vários maneiras eficientes de realizá-lo.

Uma abordagem otimizada envolve a utilização da função reduce do Python junto com a compreensão da lista. Esta solução concisa encontra efetivamente todos os fatores de um determinado número.

from functools import reduce

def factors(n):
    return set(reduce(
        list.__add__,
        ([i, n//i] for i in range(1, int(n**0.5)   1) if n % i == 0)))

Justificativa:

  • A expressão geradora ([i, n//i] for i in range(1, int(n**0.5) 1) if n % i == 0)) produz pares de fatores [ fator1, fator2] onde fator1 é menor ou igual à raiz quadrada do número n. Essa otimização reduz o tempo de cálculo.
  • A função de redução concatena as listas de pares em uma única lista, enquanto a estrutura de dados definida remove quaisquer duplicatas que possam ocorrer no caso de quadrados perfeitos.
  • Para um número n, a compreensão da lista só precisa fazer um loop até a raiz quadrada de n porque o próprio número sempre pode ser emparelhado com 1 como um fator.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3