|
楼主 |
发表于 2016-4-20 14:18
|
显示全部楼层
Option Base 1
Dim arr(20), cnt%
Function ss(ByVal n%) As Boolean
Select Case n
Case 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37
ss = True
Case Else
ss = False
End Select
End Function
Sub s()
Dim brr%(19)
For i = 1 To 19
brr(i) = i + 1
Next
arr(1) = 1
p brr, 2
End Sub
Sub p(brr%(), k%)
If k = 20 Then
arr(20) = brr(1)
If ss(arr(20) + arr(19)) And ss(arr(20) + arr(1)) Then
Debug.Print Join(arr, ",")
cnt = cnt + 1
If cnt = 100 Then End '太多,输出前100组
End If
Else
ReDim crr%(20 - k)
For i = 1 To 20 - k
crr(i) = brr(i + 1)
Next
For i = 1 To 21 - k
arr(k) = brr(i)
If i > 1 Then crr(i - 1) = brr(i - 1)
If ss(arr(k) + arr(k - 1)) Then
p crr, k + 1
End If
Next
End If
End Sub |
|