|
|

楼主 |
发表于 2026-4-1 12:49
|
显示全部楼层
在10000内的这样的素数组有12 组:
(47 257 467 677 887 1097 1307 )
(179 389 599 809 1019 1229 1439 )
(199 409 619 829 1039 1249 1459 )
(409 619 829 1039 1249 1459 1669 )
(619 829 1039 1249 1459 1669 1879 )
(829 1039 1249 1459 1669 1879 2089 )
(881 1091 1301 1511 1721 1931 2141 )
(1091 1301 1511 1721 1931 2141 2351 )
(1453 1663 1873 2083 2293 2503 2713 )
(3499 3709 3919 4129 4339 4549 4759 )
(3709 3919 4129 4339 4549 4759 4969 )
(3919 4129 4339 4549 4759 4969 5179 )
命题:公差为210的7生素数组有无穷多组,其中有的组中间可能还有其他素数
代码如下:
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 + 210: p3 = p2 + 210
p4 = p3 + 210: 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(p14, "*") = 0 And InStr(p15, "*") = 0 And InStr(p16, "*") = 0 And InStr(p17, "*") = 0 Then
s11 = s11 & "(" & p1 & " " & p2 & " " & p3 & " " & p4 & " " & p5 & " " & p6 & " " & p7 & " ) " & 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
|
|