どう書く?orgからネタをもらう。
http://ja.doukaku.org/comment/7652/
#include <cmath>
#include <iostream>
#include <iterator>
#include <pstade/oven/counting.hpp>
#include <pstade/oven/filtered.hpp>
#include <pstade/oven/copied_to.hpp>
#include <pstade/oven/taken.hpp>
bool t(unsigned n) {
  return (static_cast<unsigned long long>(std::pow(30., static_cast<double>(n))) % n) == 0;
}
int main() {
  using namespace pstade::oven;
  unsigned n;
  std::cin >> n;
  counting(1u, max_count)
    | filtered(t)
    | taken(n)
    | copied_to(std::ostream_iterator<unsigned>(std::cout, "\n"));
}
こういうのでは、出力に無理してcopied_to使わずにBOOST_FOREACHやBoost.RangeExのfor_eachを素直に使う方がいいと思う。