プロジェクトオイラー問題3最大の素因数

トピック

13195の素因数は5、7、13、29です。

数600851475143の最大の素因数は何ですか?

13195の素因数は5、7、13、29です。Q:600851475143の最大の素因数は何ですか?

アイデア

最大の素因数を解きます。つまり、1とそれ自体でのみ割り切れる因数を見つけます。n = a * b、a、bはnの2つの要素であり、a≤b、a≤素数n、b≥素数nと仮定すると、nが素数nより小さい整数で割り切れるかどうかを判断するだけで済みます。

除数として2からnを除算します。nが2で割り切れる場合、nを2で割ります。2で割り切れるまで除算する場合は、nを3で除算し、より大きい数を除数として使用すると、nが続きます1とそれ以外の数で均等に割り切れなくなるまで、次第に小さくなり、最終結果はnの最大素因数になります。

コードの実装(Python)

n = 600851475143
i = 2
while i * i <= n:
    if n % i == 0:
        n = n / i
    else:
        i += 1
print(n)

 

おすすめ

転載: blog.csdn.net/weixin_41297561/article/details/108630469