From 0e84bd9c831eda928e5c1cf5bc02b63902aee9ae Mon Sep 17 00:00:00 2001 From: deadmarshal Date: Wed, 29 Jun 2022 12:03:20 +0430 Subject: added challenge 171 --- challenge-171/deadmarshal/cpp/ch-1.cpp | 34 ++++++++++++++++++++++++++++++++++ challenge-171/deadmarshal/cpp/ch-2.cpp | 17 +++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 challenge-171/deadmarshal/cpp/ch-1.cpp create mode 100644 challenge-171/deadmarshal/cpp/ch-2.cpp (limited to 'challenge-171/deadmarshal/cpp') diff --git a/challenge-171/deadmarshal/cpp/ch-1.cpp b/challenge-171/deadmarshal/cpp/ch-1.cpp new file mode 100644 index 0000000000..388cb0b7a4 --- /dev/null +++ b/challenge-171/deadmarshal/cpp/ch-1.cpp @@ -0,0 +1,34 @@ +#include +#include +#include + +template +T divisors_sum(T n) +{ + T sum{}; + for(T i = 1; i < n / 2+1; ++i) + if(n % i == 0) sum += i; + return sum; +} + +template +std::vector abundant_odd_numbers() +{ + std::vector vec{}; + int i = 1; + do{ + if((divisors_sum(i) > i) && (i % 2 != 0)) vec.push_back(i); + i++; + }while(vec.size() != 20); + return vec; +} + +int main() +{ + std::vector vec = abundant_odd_numbers(); + for(const auto& e : vec) + std::cout << e << ' '; + std::cout << '\n'; + return 0; +} + diff --git a/challenge-171/deadmarshal/cpp/ch-2.cpp b/challenge-171/deadmarshal/cpp/ch-2.cpp new file mode 100644 index 0000000000..ff23f617ed --- /dev/null +++ b/challenge-171/deadmarshal/cpp/ch-2.cpp @@ -0,0 +1,17 @@ +#include +#include + +std::function f = [](auto n){return n + 2;}; +std::function g = [](auto n){return n * 2;}; + +template +auto compose(F f, G g) +{ + return [f,g](auto n){return f(g(n));}; +} + +int main() +{ + std::cout << compose(f, g)(5) << '\n'; + return 0; +} -- cgit