最初に
C++で書かれた、素因数分解コードです。情報
WikipediaC++コード
#include <map> #include <cmath> /* * 素因数分解 * @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]; }