こっちに書きます。
>どうせなら 3*5*7*11*13 のテーブルを用意してリピートして使えば
>17から開始出来ます。

 3と5の倍数にマークをつけた表は 3*5=15ワード毎に繰返します
 3,5,7,11,13の倍数全部にマークを付けた表は同じく全部の積のワード毎に繰返します。
 ですから、最初に倍数全部にマークを付けたそのサイズの表を作って、それをMove関
 数を使ってコピーし、
 最後に 3.5.7,11,13の所のマークを消せば 初期化が出来る訳です。


>あと、2個ペアでループを回すのも速くなります
 同じワードを読んで書く場合、キャッシュが効きます。キャッシュが効けば、2度目のアクセスは
 ほぼ無いのと同じです。
 特に小さな数の間に大きな効果があります。
 たとえば 17 19 をペアにして x,yの小さい方に xなら17 yなら19を足すようにすると、
 コードは増えますが、その実行サイクルはメモリアクセスに完全に隠れてしまいます