|
|

楼主 |
发表于 2026-4-1 13:57
|
显示全部楼层
在10000内的这样的素数组有77 组:
(3 31 37 )
(13 41 47 )
(19 47 53 )
(73 101 107 )
(79 107 113 )
(103 131 137 )
(139 167 173 )
(163 191 197 )
(199 227 233 )
(223 251 257 )
(229 257 263 )
(283 311 317 )
(433 461 467 )
(613 641 647 )
(619 647 653 )
(829 857 863 )
(853 881 887 )
(919 947 953 )
(1063 1091 1097 )
(1069 1097 1103 )
(1153 1181 1187 )
(1249 1277 1283 )
(1399 1427 1433 )
(1453 1481 1487 )
(1459 1487 1493 )
(1579 1607 1613 )
(1873 1901 1907 )
(1879 1907 1913 )
(2053 2081 2087 )
(2179 2207 2213 )
(2239 2267 2273 )
(2383 2411 2417 )
(2389 2417 2423 )
(2659 2687 2693 )
(3433 3461 3467 )
(3499 3527 3533 )
(3643 3671 3677 )
(3733 3761 3767 )
(3769 3797 3803 )
(3889 3917 3923 )
(4099 4127 4133 )
(4363 4391 4397 )
(4423 4451 4457 )
(4759 4787 4793 )
(4903 4931 4937 )
(4909 4937 4943 )
(5119 5147 5153 )
(5443 5471 5477 )
(5449 5477 5483 )
(5623 5651 5657 )
(5683 5711 5717 )
(5779 5807 5813 )
(5869 5897 5903 )
(5953 5981 5987 )
(6229 6257 6263 )
(6829 6857 6863 )
(6883 6911 6917 )
(6949 6977 6983 )
(7159 7187 7193 )
(7219 7247 7253 )
(7489 7517 7523 )
(7549 7577 7583 )
(7789 7817 7823 )
(7873 7901 7907 )
(8053 8081 8087 )
(8059 8087 8093 )
(8089 8117 8123 )
(8209 8237 8243 )
(8263 8291 8297 )
(8713 8741 8747 )
(8719 8747 8753 )
(8803 8831 8837 )
(9343 9371 9377 )
(9403 9431 9437 )
(9433 9461 9467 )
(9439 9467 9473 )
(9463 9491 9497 )
命题:项差依次为28,6的3生素数组有无穷多,其中有的组中间可能还有其他素数。
代码如下:
Private Function fenjieyinzi(sa As String) As String
Dim x, a, b, k As String
a = Val(sa)
x = 3
If a <= 1 Or a > Int(a) Then
If a = 1 Then
fenjieyinzi = "它既不是质数,也不是合数"
Else
MsgBox "error"
End If
Else
Do While a / 2 = Int(a / 2) And a >= 4
If b = 0 Then
fenjieyinzi = fenjieyinzi & "2"
b = 1
Else
fenjieyinzi = fenjieyinzi & "*2"
End If
a = a / 2
k = a
Loop
Do While a > 1
Do While x <= Sqr(a)
Do While a / x = Int(a / x) And a >= x * x
If b = 0 Then
fenjieyinzi = fenjieyinzi & x
b = 1
Else
fenjieyinzi = fenjieyinzi & "*" & x
End If
a = a / x
Loop
x = x + 2
Loop
k = a
a = 1
Loop
If b = 1 Then
fenjieyinzi = fenjieyinzi & "*" & k
Else
fenjieyinzi = "这是一个质数"
End If
End If
End Function
Private Sub Command1_Click()
Dim a, b
a = Val(Text1)
p1 = 3
Do While p1 <= a
p1 = p1: p2 = p1 + 28: p3 = p2 + 6
p4 = p3 + 4: p5 = p4 + 210: p6 = p5 + 210: p7 = p6 + 210
p11 = fenjieyinzi(Val(p1)): p12 = fenjieyinzi(Val(p2)): p13 = fenjieyinzi(Val(p3))
p14 = fenjieyinzi(Val(p4)): p15 = fenjieyinzi(Val(p5)): p16 = fenjieyinzi(Val(p6)): p17 = fenjieyinzi(Val(p7))
If InStr(p11, "*") = 0 And InStr(p12, "*") = 0 And InStr(p13, "*") = 0 And InStr(p4, "*") = 0 And InStr(p5, "*") = 0 And InStr(p6, "*") = 0 And InStr(p7, "*") = 0 Then
s11 = s11 & "(" & p1 & " " & p2 & " " & p3 & " ) " & vbCrLf
s12 = s12 + 1
End If
p1 = p1 + 2
Loop
If s12 >= 1 Then
Text2 = "在" & Text1 & "内的这样的素数组有" & s12 & " 组: " & vbCrLf & s11
Else
Text2 = "wu jie"
End If
Combo1 = Text2
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
Form21.Cls
End Sub
|
|