smooth3

generate sequence of smooth3 numbers using merge sort

by ganeshie8

JavaScript

$("body").append(smooth(15)
    .join("<br />"));

function smooth(n) {
    var sequence = [1],
        p2 = 0,
        p3 = 0;
    for (i = 1; i < n; i++) {
        if (sequence[p2] * 2 == sequence[i - 1]) p2 += 1;
        if (sequence[p3] * 3 == sequence[i - 1]) p3 += 1;
        var u2 = sequence[p2] * 2,
            u3 = sequence[p3] * 3;
        if (u2 < u3) {
            p2 += 1;
            sequence[i] = u2;
        } else {
            p3 += 1;
            sequence[i] = u3;
        }
    }
    return sequence;
}