aboutsummaryrefslogtreecommitdiff
path: root/challenge-150/deadmarshal/cpp/ch-2.cpp
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2022-10-29 14:00:28 +0330
committerdeadmarshal <adeadmarshal@gmail.com>2022-10-29 14:00:28 +0330
commit3be924cb2c725abe4f17f11af09b60c791bd32dd (patch)
tree78433f70528af4d93621378d73c922f32614d32e /challenge-150/deadmarshal/cpp/ch-2.cpp
parent6eae1d7b71ebe06f49e75b82aafdcf8dfee15431 (diff)
downloadperlweeklychallenge-club-3be924cb2c725abe4f17f11af09b60c791bd32dd.tar.gz
perlweeklychallenge-club-3be924cb2c725abe4f17f11af09b60c791bd32dd.tar.bz2
perlweeklychallenge-club-3be924cb2c725abe4f17f11af09b60c791bd32dd.zip
Challenge150
Diffstat (limited to 'challenge-150/deadmarshal/cpp/ch-2.cpp')
-rw-r--r--challenge-150/deadmarshal/cpp/ch-2.cpp45
1 files changed, 45 insertions, 0 deletions
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<iostream>
+#include<vector>
+#include<algorithm>
+
+std::vector<int> prime_factors(int n)
+{
+ int c = 2;
+ std::vector<int> v{};
+ while(n > 1)
+ {
+ if(n % c == 0)
+ {
+ v.push_back(c);
+ n /= c;
+ }
+ else c++;
+ }
+ return v;
+}
+
+std::vector<int> square_free_integers()
+{
+ std::vector<int> v{};
+ int i = 1;
+ do{
+ std::vector<int> 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<int> v = square_free_integers();
+ for(const auto& e : v)
+ std::cout << e << " ";
+ std::cout << "\n";
+ return 0;
+}