約数を表示するメソッドのスピードアップ。

Number.prototype.yakusu = function() {
    var result = [];
    var l = this + 1;
    for(var i=1;i<l;i++) {
        if(this % i == 0) {
            result.push(i);
            if(i != this / i)
                result.push(this / i);
            l = this / i;
        }
    }
    return result;
}

返される値の順番がが気持ち悪いけど。
大きい数の素数の場合だとあんまりはやくないか。

実行例

var a=100
print(a.yakusu());

----
1,100,2,50,4,25,5,20,10

修正

1の約数が返らないのを修正。もういっ回修正。

こっちの方が良さそうです。

http://orera.g.hatena.ne.jp/misttrap/20060912/p1