Python で数値の因数を効率的に見つけるにはどうすればよいですか?

DDD
リリース: 2024-10-30 01:47:02
オリジナル
920 人が閲覧しました

How to Find Factors of a Number Efficiently in Python?

Python で数値の因数を効率的に求める

数値の因数を求めることは、さまざまな分野で一般的なタスクであり、Python では複数の機能が提供されます。

最適化されたアプローチの 1 つは、リスト内包表記とともに Python の reduce 関数を利用することです。この簡潔な解決策は、指定された数値のすべての因数を効果的に見つけます。

<code class="python">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)))</code>
ログイン後にコピー

根拠:

  • ジェネレーター式 ([i, n//i ] for i in range(1, int(n**0.5) 1) if n % i == 0)) は因数のペア [factor1, foam2] を生成します。ここで、factor1 は数値 n の平方根以下です。 。この最適化により、計算時間が短縮されます。
  • reduce 関数は、ペアのリストを 1 つのリストに連結しますが、set データ構造は、完全正方形の場合に発生する可能性のある重複を削除します。
  • 数値 n の場合、数値自体は常に因数として 1 と組み合わせることができるため、リスト内包は n の平方根までループするだけで済みます。

以上がPython で数値の因数を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!