moochan です.

Intervalクラスの最新版です.

>>1.Intervalクラスの生成
>>    始値,終値,ステップ(省略時1)を与える.
>>    始値 < 終値 も可
>>    ステップは正整数でないとエラーになる.
>>2.始値,終値,ステップを再設定する.
>>3.添え字を与えて値を得る.
>>4.次の値を得る
>>5.前の値を得る
>>6.ステップの再設定.
>>7.値の個数を得る.
>>8.長さを得る.
>>9.最小値を得る.
>>10.最大値を得る.
>>11.全部の値をArrayで返す.
>12. 値の総和:sum
>13. 平均値:average
>14. イテレータ:each

Interval クラスにさらに次の2点を追加しました.
添付ファイルにして送信します.

15. 全体を逆順配列で返す:reverse
16. 素数だけを配列で返す:prime

# prime は重いです(~~; ちなみに
# Interval.new(10001,20001,2) で self.prime を試すと
# 約13秒かかりました(i486/66)

あと,例外発生を fail から raise に変更しました.
reset! => reset,step! => step= にメソッド名変更しました.

---
moochan

IyEvdXNyL2xvY2FsL2Jpbi9ydWJ5CgpjbGFzcyBJbnRlcnZhbAogIGRlZiBpbml0aWFsaXplKGJl
Z2lubmluZyxlbmRpbmcsc3RlcD0xKQogICAgcmVzZXQhKGJlZ2lubmluZyxlbmRpbmcsc3RlcCkK
ICBlbmQKICBkZWYgcmVzZXQoYmVnaW5uaW5nLGVuZGluZyxzdGVwPTEpCiAgICBAYmVnaW4sIEBl
bmQsIEBzdGVwID0gYmVnaW5uaW5nLCBlbmRpbmcsIHN0ZXAKICAgIEBkaXJlY3Rpb24gPSAxCiAg
ICBAZGlyZWN0aW9uID0gLTEgaWYgQGJlZ2luID4gQGVuZAogICAgY2hlY2tfb2Zfc3RlcAogIGVu
ZAogIGRlZiBjaGVja19vZl9zdGVwCiAgICByYWlzZSAiSW50ZXJ2YWwgc3RlcCB2YWx1ZSBpc24n
dCBwb3NpdGl2ZS4iIGlmIEBzdGVwIDw9IDAKICAgIHJhaXNlICJJbnRlcnZhbCBzdGVwIGlzIHRv
byBiaWcuIiBpZiAoQGVuZCAtIEBiZWdpbikuYWJzIDwgQHN0ZXAKICBlbmQKICBwcml2YXRlIDpj
aGVja19vZl9zdGVwCiAgZGVmIGJlZ2lubmluZygpIHJldHVybiBAYmVnaW4gZW5kCiAgZGVmIGVu
ZGluZygpIHJldHVybiBAZW5kIGVuZAogIGRlZiBzdGVwKCkgcmV0dXJuIEBzdGVwIGVuZAogIGRl
ZiBzdGVwPShzdGVwKSBAc3RlcCA9IHN0ZXA7IGNoZWNrX29mX3N0ZXAgZW5kCiAgZGVmIGRpcmVj
dGlvbigpIHJldHVybiBAZGlyZWN0aW9uIGVuZAogIGRlZiBjbGF1c2UobikKICAgIGlmIG4gPiAw
CiAgICAgIEBpbmRleCA9IG4gIyBwcml2YXRlIGluc3RhbmNlIHZhbHVhYmxlCiAgICAgIGFucyA9
IEBiZWdpbiArIEBkaXJlY3Rpb24gKiBAc3RlcCAqIChuIC0gMSkKICAgICAgcmV0dXJuIGFucyBp
ZiBAZGlyZWN0aW9uID09ICAxIGFuZCBAYmVnaW4gPD0gYW5zIGFuZCBhbnMgPD0gQGVuZAogICAg
ICByZXR1cm4gYW5zIGlmIEBkaXJlY3Rpb24gPT0gLTEgYW5kIEBiZWdpbiA+PSBhbnMgYW5kIGFu
cyA+PSBAZW5kCiAgICBlbmQKICAgIHJhaXNlICJFcnJvciBpbiBib3VuZHMuIgogIGVuZAogIGRl
ZiBbXShuKSBjbGF1c2UobikgZW5kCiAgZGVmIG5leHQoKSByZXR1cm4gY2xhdXNlKGluZGV4ICsg
MSkgZW5kCiAgZGVmIHByZXYoKSByZXR1cm4gY2xhdXNlKGluZGV4IC0gMSkgZW5kCiAgZGVmIGlu
ZGV4KCkgcmV0dXJuIEBpbmRleCBlbmQKICBwcml2YXRlIDppbmRleAogIGRlZiBzaXplKCkgcmV0
dXJuIChAZW5kIC0gQGJlZ2luKS5hYnMgLyBAc3RlcCArIDEgZW5kCiAgZGVmIGxlbmd0aCgpIHJl
dHVybiBtYXggLSBtaW4gZW5kCiAgZGVmIG1pbigpIHJldHVybiBAYmVnaW4gaWYgQGRpcmVjdGlv
biA9PSAgMTsgcmV0dXJuIGNsYXVzZShzaXplKSBlbmQKICBkZWYgbWF4KCkgcmV0dXJuIEBiZWdp
biBpZiBAZGlyZWN0aW9uID09IC0xOyByZXR1cm4gY2xhdXNlKHNpemUpIGVuZAogIGRlZiBzZXQK
ICAgIGFyeSA9IFtdCiAgICBmb3IgbiBpbiAxLi5zaXplCiAgICAgIGFyeS5wdXNoKGNsYXVzZShu
KSkKICAgIGVuZAogICAgcmV0dXJuIGFyeQogIGVuZAogIGRlZiBzdW0oKSByZXR1cm4gKG1pbiAr
IG1heCkgKiBzaXplIC8gMiBlbmQKICBkZWYgYXZlcmFnZSgpIHJldHVybiBzdW0gLyBzaXplIGVu
ZAogIGRlZiBlYWNoCiAgICBmb3IgbiBpbiAxLi5zaXplCiAgICAgIHlpZWxkIGNsYXVzZShuKQog
ICAgZW5kCiAgZW5kCiAgZGVmIHJldmVyc2UKICAgIHJldHVybiBzZXQucmV2ZXJzZSEKICBlbmQK
ICBkZWYgbWF4aW11bShhLGIpIHJldHVybiBhIGlmIGEgPiBiOyByZXR1cm4gYiBlbmQKICBwcml2
YXRlIDptYXhpbXVtCiAgZGVmIHByaW1lCiAgICBhcnkgPSBbMl0KICAgIGZvciBpIGluIDMuLk1h
dGguc3FydChtYXhpbXVtKG1heCxtaW4pKQogICAgICBmb3IgaiBpbiBhcnkKICAgICAgICBpZiBq
ID4gTWF0aC5zcXJ0KGkpCiAgICAgICAgICBhcnkucHVzaChpKQogICAgICAgICAgYnJlYWsKICAg
ICAgICBlbHNlCiAgICAgICAgICBicmVhayBpZiBpICUgaiA9PSAwCiAgICAgICAgZW5kCiAgICAg
IGVuZAogICAgZW5kCiAgICBuZXcgPSBbXQogICAgZm9yIG4gaW4gc2V0CiAgICAgIG0gPSBuLmFi
cwogICAgICBuZXh0IGlmIG0gPT0gMCBvciBtID09IDEKICAgICAgZmxhZyA9IDAKICAgICAgZm9y
IGogaW4gYXJ5CiAgICAgICAgaWYgbSA9PSBqCiAgICAgICAgICBmbGFnID0gMAogICAgICAgICAg
YnJlYWsKICAgICAgICBlbmQKICAgICAgICBpZiBtICUgaiA9PSAwCiAgICAgICAgICBmbGFnID0g
MQogICAgICAgICAgYnJlYWsKICAgICAgICBlbmQKICAgICAgZW5kCiAgICAgIG5ldy5wdXNoKG4p
IGlmIGZsYWcgPT0gMAogICAgZW5kCiAgICByZXR1cm4gbmV3CiAgZW5kCmVuZAo=