#include #include #include #include bool is_prime(int n) { if (n <= 1) return false; if (n == 2) return true; for (int i { 3 }; i * i <= n; ++i) { if (n % i == 0) return false; } return true; } void task(std::vector& v, std::promise promise) { int count { std::count_if(v.begin(), v.end(), is_prime) }; promise.set_value(count); } int main() { std::vector v(1000); std::iota(v.begin(), v.end(), 1); std::promise promise { }; auto future = promise.get_future(); std::jthread thread { task, std::ref(v), std::move(promise) }; std::cout << "The number of primes is: "; std::cout << future.get() << std::endl; }