Esempio n. 1
0
int main()
{
    Stopwatch sw;

    sw.start();

	size_t n = 600851475143;
    size_t z = n;
	vector<size_t> factors;

    size_t s = static_cast<size_t>(sqrt(n));
    for (size_t i = 2; i <= s; i++) {
        if (z % i == 0) {
            factors.push_back(i);
            z /= i;
            i = 2;
        }
        if (i == s && z != 1) {
            factors.push_back(z);
        }
    }

    cout << strjoin(factors, " * ") << endl;
    cout << sw.get();
	return 0;
}