回复 20楼 wmf2014
											只要个总个数,不用打表,10^10内的。我都算了好几天了,10^9~10^10之间的都没有算出来,是朋友要这个数据的。谢谢您!祝您身体健康万事如意!										
					
	 2020-02-12 10:13
	    2020-02-12 10:13
   2020-02-12 10:54
	    2020-02-12 10:54
   2020-02-12 11:33
	    2020-02-12 11:33
   2020-02-12 13:38
	    2020-02-12 13:38
  [此贴子已经被作者于2020-2-12 17:57编辑过]
 2020-02-12 16:47
	    2020-02-12 16:47
   2020-02-12 16:50
	    2020-02-12 16:50
   程序代码:
程序代码:Dim pri(200000000) As Byte
Sub 按钮1_Click()
  pritab
End Sub
Sub pritab()
  '用字节位筛法生成16亿以内的素数表
  Dim i As Long, j As Long, b(8) As Byte, c As Byte, k As Long, l As Long, t As Double
  j = 1
  t = Timer
  For i = 0 To 7
    b(i) = j
    j = j * 2       '位运算值初始化
  Next
  For i = 0 To 200000000
    pri(i) = 170    '先假设所有奇数都是素数
  Next
  pri(0) = 172      '0,1不是素数,2是素数
  i = 3
  While i * i <= 1600000000
    If (pri(Int(i / 8)) And b(i Mod 8)) > 0 Then
      j = i * i
      While j <= 1600000000
        If (pri(Int(j / 8)) And b(j Mod 8)) > 0 Then
          c = b(j Mod 8) Xor 255
          pri(Int(j / 8)) = pri(Int(j / 8)) And c
        End If
        j = j + i * 2
      Wend
    End If
    i = i + 2
  Wend
  k = 0
  j = 0
  For i = 2 To 1600000000
    If (pri(Int(i / 8)) And b(i Mod 8)) > 0 Then
      If i - l = 2 Then j = j + 1
      k = k + 1
      l = i
    End If
  Next
  MsgBox "总素数:" & k & ",最大素数:" & l & ",孪生素数对:" & j & ",用时:" & Timer - t & "秒"
End Sub
 
					
				
			
 2020-02-12 19:13
	    2020-02-12 19:13
   2020-02-12 20:23
	    2020-02-12 20:23
   2020-02-12 20:28
	    2020-02-12 20:28
   2020-02-12 20:29
	    2020-02-12 20:29