Files
leetcode/futureskills/primefactors.cpp
2023-10-04 17:12:25 +02:00

30 lines
659 B
C++

#include <cstdio>
#include <cassert>
#include <vector>
using prime_vec_t = std::vector<int>;
// https://en.wikipedia.org/wiki/Trial_division
auto prime_factors(int num) -> prime_vec_t {
prime_vec_t primes{};
int f = 2;
while (num > 1) {
if (num % f == 0) {
primes.emplace_back(f);
num = num / f;
} else {
f += 1;
}
}
return primes;
}
auto main([[maybe_unused]]int argc, [[maybe_unused]]char const* argv[]) -> int {
auto factors = prime_factors(20);
for (auto const& factor : factors) {
std::printf("%d, ", factor);
}
std::printf("\n");
return 0;
}