トップページに戻る    次のC++のサンプルへ    前のC++のサンプルへ

Problem3 600851475143の最大の素因数

問題

13195の素因数は5、7、13、29である。
600851475143の素因数のうち最大のものを求めよ。


ソース

#include <stdio.h>

void main()
{
    //const __int64 Val = 13195;
    const __int64 Val = 600851475143LL;

    __int64 copiedVal = Val;
    __int64 kariMax = 1;
    for (__int64 I = 2; I <= copiedVal; I++) {
        while (copiedVal % I == 0) {
            kariMax = I;
            copiedVal /= I;
        }
    }
    printf("最大の素因数 = %I64d \n",kariMax);
}


実行結果

最大の素因数 = 6857


解説

オーバフローを防ぐため、MSDN --- __int64型を使ってます。