Problem1:1<=x<1000で3か5で割り切れる数の総和

簡単なことを難しく書いた結果がこれだよ!


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

const int MAX_NUM = 1000;
int main()
{
using namespace boost::assign;
using namespace pstade::oven;

std::vector factor;
factor += 3, 5;

boost::function&)> pred =
[](int i, const std::vector& factor)
-> bool
{
using namespace pstade::oven;
using boost::lambda::_1;
return exists( factor, i % _1 == 0);
};

int sum = 0;
PSTADE_OVEN_FOREACH(
n,
counting(1, MAX_NUM)
|filtered(
boost::bind(
pred,
_1,
factor
)
)
){
sum += n;
}

std::cout << sum << std::endl;
}

相変わらず僕の書くソースは見づらいです。。。