«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно найти множители числа в Python?

Как эффективно найти множители числа в Python?

Опубликовано 8 ноября 2024 г.
Просматривать:360

How to Find Factors of a Number Efficiently in Python?

Эффективный поиск множителей числа в Python

Определение множителей числа — обычная задача в различных областях, и Python предлагает несколько эффективные способы достижения этой цели.

Один из оптимизированных подходов предполагает использование функции Python reduce вместе с понимание списка. Это краткое решение эффективно находит все факторы заданного числа.

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

Обоснование:

  • Выражение генератора ([i, n//i] for i in range(1, int(n**0.5) 1) if n % i == 0)) дает пары факторов [фактор1, фактор2], где фактор1 меньше или равен квадратному корню из числа n. Такая оптимизация сокращает время вычислений.
  • Функция сокращения объединяет списки пар в один список, а заданная структура данных удаляет любые дубликаты, которые могут возникнуть в случае идеальных квадратов.
  • Для числа n генератору списка необходимо выполнить цикл только до извлечения квадратного корня из n, потому что само число всегда можно соединить с 1 в качестве множителя.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3