2012年11月17日土曜日

素数列挙

ちょっと話に上がったので


「素数とは1以外の数で1と自分自身しか約数がない整数」
なので一番安直な方法は2より後の数で其処までに現れる素数で試し割りしていく方法である。



処理内容は:

'#2は事前登録。
'#素数は常に「奇数」の為、開始値3で2ずつ加算ループ(2の倍数永久除外)
'# 登録済素数で割り算ループ
'#  割れたら抜ける、登録済み素数で最後まで割れなかったら素数として登録

dim n:redim n(0):n(0)=2
for i=3 to 10000 step 2
    for j=0 to ubound(n)
        if i mod n(j)=0 then exit for else:if j=ubound(n) then redim Preserve n(ubound(n)+1):n(ubound(n))=i
    next
next
wsh.echo join(n)


0 件のコメント:

コメントを投稿