忍者ブログ
理系の若者が思ったことを書くブログです。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

素数とは、1 と自分自身以外に正の約数を持たない、1 でない自然数のことです。
1~100までの素数は容易に探索できるかもしれません。
でも1~1000までの素数となるとちょっと骨が折れるでしょうね。
そこで、プログラミングの出番です。

実を言うと素数を探索するアルゴリズムは複数あります。
したがって、素数はコンピュータ計算でも探索できます。

ここでは、次の方法で素数を探索してみようと思います。

① a_k = k (k = 1,2,3…1000)となる数列akを定義する。
② k = 1であれば、素数ではないと判断する。
③ k = 2であれば、素数と判断する。
③ k >2であるa_kを2~kまでのすべての数で割っていく。
④ ③のときに、割った数pに対してひとつでもa_k ≡ 0 (mod p) を満たせば
   素数でないと判断する。
※modの意味がわからない方はこちらへ⇒http://sur.ac/faq/mod.html
⑤ kの値を繰り上げて③~④を繰り返す。



上の計算方法をVBAプログラムにすると次のようになります。

Sub primenumber()

Dim k, j As Long
Dim hantei As Long
Dim counter As Long

counter = 0

For k = 1 To 1000

If k = 1 Then

hantei = 0

'1は素数じゃない。

End If

If k = 2 Then

hantei = 1
counter = counter + 1

Cells(counter, 1).Value = counter
Cells(counter, 2).Value = k

'2は素数である。

End If

If k = 3 Then

hantei = 1
counter = counter + 1
Cells(counter, 1).Value = counter
Cells(counter, 2).Value = k

'3は素数である。

End If

If k > 3 Then

hantei = 1

For j = 2 To k - 1

Data = k Mod j

If Data = 0 Then

hantei = 0

End If

Next j

If hantei = 1 Then
counter = counter + 1
Cells(counter, 1).Value = counter
Cells(counter, 2).Value = k

End If
'3以上の数の素数判定実施。
End If

Next k


End Sub


解析結果:


このように、プログラミングを勉強すれば素数も簡単に探せるようになるのです。

拍手[13回]

PR
Comment
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
[32]  [31]  [30]  [29]  [28]  [27]  [26]  [25
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
[10/02 武市]
[09/15 朧月]
[09/08 トトロママ]
[08/22 トトロママ]
[08/17 トトロママ]
プロフィール
HN:
No Name Ninja
性別:
非公開
バーコード
ブログ内検索
P R
アクセス解析
カウンター
コガネモチ
忍者ブログ [PR]