|
楼主 |
发表于 2020-8-4 23:41
|
显示全部楼层
本帖最后由 ysr 于 2020-8-4 15:45 编辑
10^5内的素数个数是8898.6974874999 10^6内的素数个数是86799.5879107997 10^7内的素数个数是519772.445123499 10^8内的素数个数是1857108.65318132 10^9内的素数个数是50740713.4792312 10^10内的素数个数是448771815.598691 10^11内的素数个数是4079492265.66428 10^12内的素数个数是3559484984.55512 10^13内的素数个数是341477310398.896 10^14内的素数个数是3186318831887.39 10^15内的素数个数是29814306755064.9 10^16内的素数个数是271238316485451 10^17内的素数个数是2.37351754594648E+15 10^18内的素数个数是2.001810553244E+16 10^19内的素数个数是1.63219358308064E+17 10^20内的素数个数是1.29176015355109E+18 10^21内的素数个数是9.96052931258817E+18 10^22内的素数个数是7.50875377112113E+19 10^23内的素数个数是5.54974317746982E+20 10^24内的素数个数是4.03108299333097E+21 10^25内的素数个数是2.88336417774683E+22 10^26内的素数个数是2.03444512371415E+23 10^27内的素数个数是1.41803909347821E+24 10^28内的素数个数是9.77600286342043E+24 10^29内的素数个数是6.6730890887056E+25
代码如下:
Private Sub Command1_Click()
Dim a, b, c
a = Trim(Text1)
Do While Log(a) / Log(10) < 28
a = MbC(Trim(a), 10)
a2 = Log(a) / Log(10)
a1 = 117.61 * a2 ^ 2 - 954.97 * a2 + 1952.5
b1 = 608.46 * a2 ^ 2 - 4807.6 * a2 + 9630.1 - 0.3
C1 = 1076.1 * a2 ^ 2 - 8236.7 * a2 + 16050
a3 = a / 4
D1 = Int(a3 ^ (1 / 4)) * 4
d = Int(D1 / 6) + 1
s1 = a1 * (d ^ 3 - 1) / 3 - b1 * (d ^ 2 - 1) / 2 + C1 * (d - 1)
a4 = -28.047 * a2 ^ 2 + 265.45 * a2 - 596.35
b2 = -53.992 * a2 ^ 2 + 780.68 * a2 - 2119.1
C2 = 536.49 * a2 ^ 2 - 3691.9 * a2 + 6520.5
s2 = a4 * (d ^ 3 - 1) / 3 - b2 * (d ^ 2 - 1) / 2 + C2 * (d - 1)
a6 = 47.738 * a2 ^ 2 - 339.77 * a2 + 637.35
d = d - 1
b3 = 553.61 * a2 ^ 2 - 4087.1 * a2 + 7788.3
c3 = 1500.9 * a2 ^ 2 - 11269 * a2 + 21600
s3 = a6 * (d ^ 3 - 1) / 3 - b3 * (d ^ 2 - 1) / 2 + c3 * (d - 1)
s = s1 + s2 + s3
If a2 <= 9 Then
js = 0.0549 * a2 ^ 2 - 0.8831 * a2 + 3.5995 - 0.02
s = js * s
ElseIf a2 <= 12 Then
js = -0.0484 * a2 ^ 2 + 1.0293 * a2 - 5.3684 - 0.0025
s = js * s
Else
js = 0.0121 * a2 ^ 2 - 0.2751 * a2 + 1.6879 - 0.00734
s = js * s
End If
Text2 = Text2 & "10^" & a2 & "内的素数个数是" & s & " "
Loop
Text3 = C1
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub
实际10^25内有176 846 309 399 143 769 411 680 个素数,所以,上面的结果除了10^6大于实际(实际是78498)外其他都是下限。
|
|