Rezolvare:

 Au dat soluţii corecte: Cristian Ciobanu, Arthur Weber, Claudiu Drăgan, Cristina Petrescu,  Aurel Ionescu, Ady Nicolae, Szabo Zoltan,  Dinu Elena, Ştefan Gaţachiu.

 Am păstrat două din soluţiile primite:

 1. Szabo Zoltan:

Numărul va fi cu atât mai mare cu cât folosim mai multe cifre și cu cât reușim să poziționăm cifrele mai mari pe pozițiile cele mai semnificative.

În acest sens începem cu primele două cifre 9 și 8.

9*8=72

Dacă reușim să generăm un număr de forma 9872abcdef, cu zece cifre, toate distincte, avem garanția că este cel mai mare număr cu această proprietate.

Continuăm cu celelalte produse de cifre: 8*7=56, 7*2=14.

Numărul mai mare este 987256cdef decât 987214cdef.

1. Verificăm dacă putem avea 987256cdef

numărul nostru ar trebui să conțină atât secvența 14=7*2, cât și 10=2*5. Dar cifra 2 nu poate avea două continuări, pentru că toate cifrele apar în număr o singură dată.

Deci nu e bine 987256cdef.

2. Încă nu abandonăm 9872abcdef

verificăm, dacă axistă vreo variantă de forma 9872a56def sau 9872ab56ef.

cum 5*6=30 și 7*2=14, avem deja toate cifrele, iar aceste valori nu suint compatibile cu forma 9872a56def.

Pentru un număr  9872ab56ef numărul mai mare este 9872305614, ceea ce respectă și condițiile impuse de problemă.

 Deci soluția este 9872305614.

 2. Arthur Weber:

Soluţia este 9872305614. Este maximul a 4656 numere întregi care verifică cele două condiţii din enunţ.

Pentru rezolvarea problemei am scris următoarea procedură (care generează şi toate cele 4656 de numere):

Module Module1

    Dim A(0 To 10) As Byte
    Dim Flags(0 To 9) As Boolean
    Dim Nums(5000) As UInt64
    Dim Count As Integer = 0

    Sub GenNumar(ByVal K As Byte, ByVal N As Byte)
        If K > N Then
            Dim Num As UInt64 = 0
            For I As Byte = 1 To N
                Num = 10 * Num + A(I)
            Next I
            Dim S As String = CStr(Num)
            Dim Ok As Boolean = True
            For I = 1 To N - 1
         If InStr(S, CStr(A(I) * A(I + 1))) = 0 Then
                    Ok = False
                    Exit For
                End If
            Next I
            If Ok Then
                Count += 1
                Nums(Count) = Num
            End If
        ElseIf K = 1 Then
            For I As Byte = 1 To 9
                If Not Flags(I) Then
                    A(K) = I
                    Flags(I) = True
                    GenNumar(K + 1, N)
   &n