#include #include int factorial(int n) { // last is one-past-end return std::accumulate(boost::counting_iterator(1), boost::counting_iterator(n+1), 1, std::multiplies()); }