|
楼主 |
发表于 2020-7-13 23:32
|
显示全部楼层
1000000000000000000000000000内(就是10^27内)的素数个数下限为
16163872900353600000000000,实际为16 3524 6042 6841 6804 4642 7399.
此结果的程序如下:
Private Sub Command1_Click()
Dim a, b
Dim c As Double
a = Trim(Text1)
b = Sqr(a)
c = a / Log(a)
If a > 10000000 Then
a1 = Log(a) / Log(10)
b2 = Exp(1.033 * a1)
b1 = 0.159 * b2
b4 = (1.74136140824861 ^ (1.8 * a1)) / 4.9
b5 = (b1 + b4) / 2
c = (a + (b5 + 4) * b) / Log(a)
'c = 0.1174 * Exp(2.2094 * a1)
ElseIf a >= 10000 Then
a1 = Log(a) / Log(10)
b3 = (56 * a1 ^ 3 - 741 * a1 ^ 2 + 3367 * a1 - 5142) / 6
c = (a + (b3 + 4) * b) / Log(a)
ElseIf a >= 1000 Then
c = (a + 4 * b) / Log(a)
ElseIf a >= 500 Then
c = (a + 2 * b) / Log(a)
ElseIf a >= 100 Then
c = (a + b) / Log(a)
Else
c = c
End If
d = a / c
d1 = a - Int(d)
c1 = a & "内的素数个数下限为 " & Format(c, "#")
Text2 = c1
Text3 = d1
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub
这个已经是接近实际的下限,再继续调整很困难,需要分段了,否则,
再继续接近实际就会出现有的数段大于实际而有的数段小于实际的情况了。 |
|