#include #include #include #include #include #include using namespace std; using num_type = unsigned long long; constexpr bool is_prime(num_type val, num_type divisor=2) { if (val == 1) return false; if ( divisor*divisor > val ) { return true; } if ( val % divisor == 0 ) { return false; } return is_prime(val, ++divisor); } int main() { vector vals(10); random_device rnd; uniform_int_distribution dist{2,75}; generate(begin(vals), end(vals),bind(dist,ref(rnd))); vals.erase(remove_if(begin(vals), end(vals), [](num_type val){return !is_prime(val);}), end(vals)); sort(begin(vals), end(vals)); copy(begin(vals), end(vals), ostream_iterator{cout," "}); cout << accumulate(begin(vals),end(vals),1,multiplies<>{})<