とかいいつつ平方根的ちょちょいな方に変更。
ちなみに指定値に対する素数の数は下の通り。
秒数は下のコードじゃなく、別途篩版のです。篩は次回で。
指定値 | 素数総数 | 時間 |
10 | 4 | 0秒 |
100 | 25 | 0秒 |
1000 | 168 | 0秒 |
10000 | 1229 | 0秒 |
100000 | 9592 | 0秒 |
1000000 | 78498 | 1秒 |
10000000 | 664579 | 25秒 |
100000000 | 5761455 | 18分53秒 |
dim n:redim n(-1)'←再配列化時の-1は値は代入できないが指定は可能非推奨だと思う多分
For i = 2 To 1000000
a = Int(i^0.5)
if a=1 then redim Preserve n(ubound(n)+1):n(ubound(n))=i
For k = 2 To a
If i Mod k = 0 Then Exit For
if k=a then redim Preserve n(ubound(n)+1):n(ubound(n))=i
Next
Next
wsh.echo join(n)
wsh.echo ubound(n)
0 件のコメント:
コメントを投稿