素數螺旋

素數螺旋是一個最簡單的方法構想,來展示出素數的一定明顯規律的二次多項式去創建大量的素數數字。

項目介紹

素數螺旋 素數螺旋

該項目是由數學家斯塔尼斯拉夫·烏拉姆在1963年發現的,之後他在一個科學會議上。亂寫了一張“又長又令人厭煩的”報告。不久以後,在一個較前的電腦圖像申請函中,烏嵐與他的協作者邁倫·斯特尼和馬克·威爾在洛斯阿拉莫斯國家實驗室使用了MANIAC II代碼生產了該數字的螺旋圖片至65000這個數字。1964年3月,馬丁·加德納 在他出版的書籍——《趣味數學》上寫了一篇關於烏嵐螺旋的內容。而當這個數列出現時,已經被入選了在《科學美國人》的雜誌首頁上。

左圖為偽素數與素數兩色圖

圖形是autocad vba程式製作

代碼

Sub 素數螺旋()

Dim t As Variant

Dim n As Variant

Dim co As Variant

Dim S As Variant

Dim k As Variant

Dim pointObj As AcadPoint

Dim location(0 To 2) As Double

Dim p(1 To 100000) As Double

Dim i As Variant

Dim J As Variant

Dim x As Variant

x = 3.1415926

S = 0

k = 8.8624554903079E-06

For i = 1 To 100000 Step 1

t = 3 * i+ 3*(sin(0.5*x*i))^2 + (-1) ^ i: S = S

a = i

location(0) = 30 * a * (Cos(a / k)): location(1) = 30 * a * (Sin(a / k)): location(2) = 0#

Set pointObj = ThisDrawing.ModelSpace.AddPoint(location)

If qp(t) = 1 Then

pointObj.color = acRed

End If

If qp(t) = 0 Then

pointObj.color = acBlue: S = S + 1

End If

Next i

MsgBox "合計" & i - S - 1 & "個素數!"

End Sub

Function p(m As Variant, n As Variant) As Variant

If n >= m Then

p = 1

End If

If m / n = Int(m / n) And n < m Then

p = 0

Else

p = 1

End If

End Function

Function qp(m As Variant) As Variant

Dim S As Long, s1 As Long, s2 As Long, s3 As Long, s4 As Long, s5 As Long, s6 As Long

Dim s7 As Long, s8 As Long, s9 As Long, s10 As Long, s11 As Long, s12 As Long, s13 As Long

Dim s14 As Long, s15 As Long, s16 As Long, s17 As Long, s18 As Long, s19 As Long

Dim s20 As Long, s21 As Long, s22 As Long, s23 As Long, s24 As Long, s25 As Long

Dim s26 As Long, s27 As Long, s28 As Long, s29 As Long, s30 As Long, s31 As Long

S = p(m, 5) * p(m, 7) * p(m, 11) * p(m, 13) * p(m, 17) * p(m, 19) * p(m, 23) * p(m, 29) * p(m, 31) * p(m, 37) * p(m, 41) * p(m, 43) * p(m, 47) * p(m, 53) * p(m, 59) * p(m, 61) * p(m, 67) * p(m, 71) * p(m, 73) * p(m, 79) * p(m, 83) * p(m, 89) * p(m, 97)

s1 = p(m, 101) * p(m, 103) * p(m, 107) * p(m, 109) * p(m, 113) * p(m, 127) * p(m, 131) * p(m, 137) * p(m, 139) * p(m, 149) * p(m, 151) * p(m, 157) * p(m, 163) * p(m, 167) * p(m, 173) * p(m, 179) * p(m, 181) * p(m, 191)

s2 = p(m, 193) * p(m, 197) * p(m, 199) * p(m, 211) * p(m, 223) * p(m, 227) * p(m, 229) * p(m, 233) * p(m, 239) * p(m, 241) * p(m, 251) * p(m, 257) * p(m, 263) * p(m, 269) * p(m, 271) * p(m, 277) * p(m, 281) * p(m, 283)

s3 = p(m, 293) * p(m, 307) * p(m, 311) * p(m, 313) * p(m, 317) * p(m, 331) * p(m, 337) * p(m, 347) * p(m, 349) * p(m, 353) * p(m, 359) * p(m, 367) * p(m, 373) * p(m, 379) * p(m, 383) * p(m, 389) * p(m, 397) * p(m, 401)

s4 = p(m, 409) * p(m, 419) * p(m, 421) * p(m, 431) * p(m, 433) * p(m, 439) * p(m, 443) * p(m, 449) * p(m, 457) * p(m, 461) * p(m, 463) * p(m, 467) * p(m, 479) * p(m, 487) * p(m, 491) * p(m, 499) * p(m, 503) * p(m, 509)

s5 = p(m, 521) * p(m, 523) * p(m, 541) * p(m, 547) * p(m, 557) * p(m, 563) * p(m, 569) * p(m, 571) * p(m, 577) * p(m, 587) * p(m, 593) * p(m, 599) * p(m, 601) * p(m, 607) * p(m, 613) * p(m, 617) * p(m, 619) * p(m, 631)

s6 = p(m, 641) * p(m, 643) * p(m, 647) * p(m, 653) * p(m, 659) * p(m, 661) * p(m, 673) * p(m, 677) * p(m, 683) * p(m, 691) * p(m, 701) * p(m, 709) * p(m, 719) * p(m, 727) * p(m, 733) * p(m, 739) * p(m, 743) * p(m, 751)

s7 = p(m, 757) * p(m, 761) * p(m, 769) * p(m, 773) * p(m, 787) * p(m, 797) * p(m, 809) * p(m, 811) * p(m, 821) * p(m, 823) * p(m, 827) * p(m, 829) * p(m, 839) * p(m, 853) * p(m, 857) * p(m, 881) * p(m, 883) * p(m, 857)

s8 = p(m, 859) * p(m, 863) * p(m, 877) * p(m, 907) * p(m, 911) * p(m, 919) * p(m, 929) * p(m, 937) * p(m, 941) * p(m, 947) * p(m, 953) * p(m, 967) * p(m, 971) * p(m, 977) * p(m, 983) * p(m, 991) * p(m, 997) * p(m, 1009)

s9 = p(m, 1013) * p(m, 1019) * p(m, 1021) * p(m, 1031) * p(m, 1033) * p(m, 1039) * p(m, 1049) * p(m, 1051) * p(m, 1061) * p(m, 1063) * p(m, 1069) * p(m, 1087) * p(m, 1091) * p(m, 1093) * p(m, 1097) * p(m, 1103) * p(m, 1109)

s10 = p(m, 1303) * p(m, 1307) * p(m, 1217) * p(m, 1223) * p(m, 1117) * p(m, 1123) * p(m, 1129) * p(m, 1151) * p(m, 1153) * p(m, 1163) * p(m, 1171) * p(m, 1181) * p(m, 1187) * p(m, 1193) * p(m, 1201) * p(m, 1213) * p(m, 1229)

s11 = p(m, 1231) * p(m, 1237) * p(m, 1249) * p(m, 1259) * p(m, 1277) * p(m, 1279) * p(m, 1283) * p(m, 1289) * p(m, 1291) * p(m, 1297) * p(m, 1301) * p(m, 1319) * p(m, 1321) * p(m, 1327) * p(m, 1361) * p(m, 1367) * p(m, 1373)

s12 = p(m, 1381) * p(m, 1399) * p(m, 1409) * p(m, 1423) * p(m, 1427) * p(m, 1429) * p(m, 1433) * p(m, 1439) * p(m, 1447) * p(m, 1451) * p(m, 1453) * p(m, 1459) * p(m, 1471) * p(m, 1481) * p(m, 1483) * p(m, 1487) * p(m, 1489)

s13 = p(m, 1493) * p(m, 1499) * p(m, 1511) * p(m, 1523) * p(m, 1531) * p(m, 1543) * p(m, 1549) * p(m, 1553) * p(m, 1559) * p(m, 1567) * p(m, 1571) * p(m, 1579) * p(m, 1583) * p(m, 1597) * p(m, 1601) * p(m, 1607) * p(m, 1609)

s14 = p(m, 1613) * p(m, 1619) * p(m, 1621) * p(m, 1627) * p(m, 1637) * p(m, 1657) * p(m, 1663) * p(m, 1667) * p(m, 1669) * p(m, 1693) * p(m, 1697) * p(m, 1699) * p(m, 1709) * p(m, 1721) * p(m, 1723) * p(m, 1733) * p(m, 1741)

s15 = p(m, 1747) * p(m, 1753) * p(m, 1759) * p(m, 1777) * p(m, 1783) * p(m, 1787) * p(m, 1789) * p(m, 1801) * p(m, 1811) * p(m, 1823) * p(m, 1831) * p(m, 1847) * p(m, 1861) * p(m, 1867) * p(m, 1871) * p(m, 1873) * p(m, 1877)

s16 = p(m, 1879) * p(m, 1889) * p(m, 1901) * p(m, 1907) * p(m, 1913) * p(m, 1931) * p(m, 1933) * p(m, 1949) * p(m, 1951) * p(m, 1973) * p(m, 1979) * p(m, 1987) * p(m, 1993) * p(m, 1997) * p(m, 1999) * p(m, 2003) * p(m, 2011)

s17 = p(m, 2017) * p(m, 2027) * p(m, 2029) * p(m, 2039) * p(m, 2053) * p(m, 2063) * p(m, 2069) * p(m, 2081) * p(m, 2083) * p(m, 2087) * p(m, 2089) * p(m, 2099) * p(m, 2111) * p(m, 2113) * p(m, 2129) * p(m, 2131) * p(m, 2137)

s18 = p(m, 2141) * p(m, 2143) * p(m, 2153) * p(m, 2161) * p(m, 2179) * p(m, 2203) * p(m, 2207) * p(m, 2213) * p(m, 2221) * p(m, 2237) * p(m, 2239) * p(m, 2243) * p(m, 2251) * p(m, 2267) * p(m, 2269) * p(m, 2273) * p(m, 2281)

s19 = p(m, 2287) * p(m, 2293) * p(m, 2297) * p(m, 2309) * p(m, 2311) * p(m, 2333) * p(m, 2339) * p(m, 2341) * p(m, 2347) * p(m, 2351) * p(m, 2357) * p(m, 2371) * p(m, 2377) * p(m, 2381) * p(m, 2383) * p(m, 2389) * p(m, 2393)

s20 = p(m, 2399) * p(m, 2411) * p(m, 2417) * p(m, 2423) * p(m, 2437) * p(m, 2441) * p(m, 2447) * p(m, 2459) * p(m, 2467) * p(m, 2473) * p(m, 2477) * p(m, 2503) * p(m, 2521) * p(m, 2531) * p(m, 2539) * p(m, 2543) * p(m, 2549)

s21 = p(m, 2551) * p(m, 2557) * p(m, 2579) * p(m, 2591) * p(m, 2593) * p(m, 2609) * p(m, 2617) * p(m, 2621) * p(m, 2633) * p(m, 2647) * p(m, 2657) * p(m, 2659) * p(m, 2663) * p(m, 2671) * p(m, 2677) * p(m, 2683) * p(m, 2687)

s22 = p(m, 2689) * p(m, 2693) * p(m, 2699) * p(m, 2707) * p(m, 2711) * p(m, 2713) * p(m, 2719) * p(m, 2729) * p(m, 2731) * p(m, 2741) * p(m, 2749) * p(m, 2753) * p(m, 2767) * p(m, 2777) * p(m, 2789) * p(m, 2791) * p(m, 2797)

s23 = p(m, 2801) * p(m, 2803) * p(m, 2819) * p(m, 2833) * p(m, 2837) * p(m, 2843) * p(m, 2851) * p(m, 2857) * p(m, 2861) * p(m, 2879) * p(m, 2887) * p(m, 2897) * p(m, 2903) * p(m, 2909) * p(m, 2917) * p(m, 2927) * p(m, 2939)

s24 = p(m, 2953) * p(m, 2957) * p(m, 2963) * p(m, 2969) * p(m, 2971) * p(m, 2999) * p(m, 3001) * p(m, 3011) * p(m, 3019) * p(m, 3023) * p(m, 3037) * p(m, 3041) * p(m, 3049) * p(m, 3061) * p(m, 3067) * p(m, 3079) * p(m, 3083)

qp = S * s1 * s2 * s3 * s4 * s5 * s6 * s7 * s8 * s9 * s10 * s11 * s12 * s13 * s14 * s15 * s16 * s17 * s18 * s19 * s20 * s21 * s22 * s23 * s24

End Function

相關詞條

熱門詞條

聯絡我們