Hatena::ブログ(Diary)

Higé au lait Twitter

 | 

2006年09月11日 引退

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

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の約数が返らないのを修正。もういっ回修正。

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

チーム俺等

amachangamachang 2006/09/11 18:32 はじめまして^^きれいなプログラムですね。もっと高速化できるところないかなーっと思って見たんですけど、見つけられませんでした。

トラックバック - http://d.hatena.ne.jp/higeorange/20060911/1157955155
 |