素因数分解:C++コード

最初に

C++で書かれた、素因数分解コードです。

情報

Wikipedia

C++コード

#include 
#include 

/*
* 素因数分解
* @param [in] n   自然数
* @param [in] out 素因数分解した数が入る
*/
template<typename T>
void PrimeFactors(T n, std::map<T,T> &out)
{
    while (n % 2 == 0)
    {
        ++out[2];
        n = n / 2;
    }

    for (T i = 3; i <= sqrt(n); i = i + 2)
    {
        while (n%i == 0)
        {
            ++out[i];
            n = n / i;
        }
    }

    if (n > 2)
        ++out[n];
}

オンライン実行

コメント 

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください