diff --git a/cpp/prime-factors/prime_factors.cpp b/cpp/prime-factors/prime_factors.cpp new file mode 100644 index 0000000..565b834 --- /dev/null +++ b/cpp/prime-factors/prime_factors.cpp @@ -0,0 +1,22 @@ +#include "prime_factors.h" + + +namespace prime_factors { + +factors_t of(int number) +{ + factors_t result; + + for (int i = 2; i <= number; ++i) { + + while (number % i == 0) { + + number /= i; + result.push_back(i); + } + } + + return result; +} + +} diff --git a/cpp/prime-factors/prime_factors.h b/cpp/prime-factors/prime_factors.h new file mode 100644 index 0000000..8ac971e --- /dev/null +++ b/cpp/prime-factors/prime_factors.h @@ -0,0 +1,13 @@ +#pragma once + +#define EXERCISM_RUN_ALL_TESTS + +#include + +namespace prime_factors { + +typedef std::vector factors_t; + +factors_t of(int number); + +}