Project Euler

by ambient

HTML

<script src="https://raw.github.com/kaleb/js-op/master/op.js"></script>
<script src="http://fitzgen.github.com/wu.js/lib/wu.js"></script>

JavaScript

console.log(wu.range(1,1000)
    .filter(function(x){
        return !(x % 3) || !(x % 5);
    }).reduce(op.add)
);
//-------------------------------------------------
var fib = wu.memoize(function fib(n) {
    return n <= 1? 1: fib(n-2) + fib(n-1);
});
function Fib() {
    var i = 1;
    return function() {
        return fib(i++);
    };
}
console.log(wu.Iterator(Fib())
    .filter(function(x){return !(x % 2)})
    .takeWhile(wu.curry(op.ge,4000000))
    .reduce(op.add)
);
//----------------------------------------------------
function greatest_prime_factor(n) {
    var divisor = 2;
    while (n > 1) {
        if (!(n % divisor)) {
            n /= divisor;
            divisor -= 1;
        }
        divisor += 1;
    }
    return divisor;
}
console.log(greatest_prime_factor(13195));