Sub TimSo()
Dim A As Long, B As Long, C As Long, D As Long, E As Long, F As Long, G As Long, H As Long, SoKiemTra As Long
For A = 1 To 9
SoKiemTra = 2 ^ A
For B = 0 To 9
If (SoKiemTra And 2 ^ B) = 0 Then
SoKiemTra = SoKiemTra + 2 ^ B
For C = 0 To 9
If (SoKiemTra And 2 ^ C) = 0 Then
SoKiemTra = SoKiemTra + 2 ^ C
For D = 0 To 9
If (SoKiemTra And 2 ^ D) = 0 Then
SoKiemTra = SoKiemTra + 2 ^ D
For E = 0 To 9
If (SoKiemTra And 2 ^ E) = 0 Then
SoKiemTra = SoKiemTra + 2 ^ E
For F = 0 To 9
If (SoKiemTra And 2 ^ F) = 0 Then
SoKiemTra = SoKiemTra + 2 ^ F
For G = 0 To 9
If (SoKiemTra And 2 ^ G) = 0 Then
SoKiemTra = SoKiemTra + 2 ^ G
For H = 0 To 9
If (SoKiemTra And 2 ^ H) = 0 Then
KiemTra A, B, C, D, E, F, G, H
End If
Next
SoKiemTra = SoKiemTra - 2 ^ G
End If
Next
SoKiemTra = SoKiemTra - 2 ^ F
End If
Next
SoKiemTra = SoKiemTra - 2 ^ E
End If
Next
SoKiemTra = SoKiemTra - 2 ^ D
End If
Next
SoKiemTra = SoKiemTra - 2 ^ C
End If
Next
SoKiemTra = SoKiemTra - 2 ^ B
End If
Next
Next
End Sub
Private Sub KiemTra(A As Long, B As Long, C As Long, D As Long, E As Long, F As Long, G As Long, H As Long)
Dim So As Long
So = CLng(A & B & C & D & E & F)
If So * CLng(C) <> CLng(C & D & E & F & A & B) Then Exit Sub
If So * CLng(G) <> CLng(B & C & D & E & F & A) Then Exit Sub
If So * CLng(B) <> CLng(E & F & A & B & C & D) Then Exit Sub
If So * CLng(E) <> CLng(F & A & B & C & D & E) Then Exit Sub
If So * CLng(H) <> CLng(D & E & F & A & B & C) Then Exit Sub
MsgBox A & B & C & D & E & F
End Sub