From 3be924cb2c725abe4f17f11af09b60c791bd32dd Mon Sep 17 00:00:00 2001 From: deadmarshal Date: Sat, 29 Oct 2022 14:00:28 +0330 Subject: Challenge150 --- challenge-150/deadmarshal/cpp/ch-2.cpp | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 challenge-150/deadmarshal/cpp/ch-2.cpp (limited to 'challenge-150/deadmarshal/cpp/ch-2.cpp') diff --git a/challenge-150/deadmarshal/cpp/ch-2.cpp b/challenge-150/deadmarshal/cpp/ch-2.cpp new file mode 100644 index 0000000000..0ea102055f --- /dev/null +++ b/challenge-150/deadmarshal/cpp/ch-2.cpp @@ -0,0 +1,45 @@ +#include +#include +#include + +std::vector prime_factors(int n) +{ + int c = 2; + std::vector v{}; + while(n > 1) + { + if(n % c == 0) + { + v.push_back(c); + n /= c; + } + else c++; + } + return v; +} + +std::vector square_free_integers() +{ + std::vector v{}; + int i = 1; + do{ + std::vector factors = prime_factors(i); + std::sort(factors.begin(), factors.end()); + const bool hasDups = std::adjacent_find(factors.begin(), + factors.end()) + != factors.end(); + if(!hasDups) + v.push_back(i); + i++; + }while(i <= 500); + return v; +} + +int main() +{ + std::vector v = square_free_integers(); + for(const auto& e : v) + std::cout << e << " "; + std::cout << "\n"; + return 0; +} -- cgit