TREDICI

Siamo al cielo FINALE

Il numero, 1406357289, è un numero 0-9 pandigitale perché è costituito da ciascuna delle cifre da 0 a 9 in qualche ordine, ma ha anche un’altra interessante proprietà:
Sia d1 la prima cifra, la d2 seconda, e così via. Allora si ha:

d2d3d4 = 406 è divisibile per 2
d3d4d5 = 063 è divisibile per 3
d4d5d6 = 635 è divisibile per 5
d5d6d7 = 357 è divisibile per 7
d6d7d8 = 572 è divisibile per 11
d7d8d9 = 728 è divisibile per 13
d8d9d10 = 289 è divisibile per 17
Trovare la somma di tutti i numeri da 0-9 pandigitali con questa proprietà.

p.s.

una soluzione originale = 3 crediti

originale sul serio

Questa voce è stata pubblicata in Algoritmi, Aritmetica, Informatica, Matematica, Programmazione e contrassegnata con , , , , , , , , , , , , , , . Contrassegna il permalink.

23 risposte a TREDICI

  1. Valton ha detto:

    Ovviamente il risultato è 9*9*8*7*6*5*4*3*2*1 ! =) Battuti da un 2000 <2

  2. Filippo Bisconcin ha detto:

    cavolo prof era un + messo al posto di un * ….. non ho parole
    viene 16695334890

    • Filippo Bisconcin ha detto:

      forse è più leggibile come immagine, ma vabbè

      Dim res As Double = 0

      Function proprietà(ByVal num As Double) As Boolean
      -Dim stringa = num.ToString, res As Boolean = true, temp As Double
      -If stringa.Length = 9 Then stringa = “0” & stringa
      -Dim primi As Integer() = {2, 3, 5, 7, 11, 13, 17}
      -For a = 1 To 7
      –temp = Int(stringa(a).ToString) * 100 + Int(stringa(a + 1).ToString) * 10 + Int(stringa(a + 2).ToString)
      –If Not temp Mod primi(a – 1) = 0 Then
      —res = False
      —Exit For
      –End If
      -Next
      -Return res
      End Function

      Function permutazioni_possibile(ByVal passaggio As Integer, ByVal permutato As String, ByVal usati() As Boolean, ByVal originale As String)
      -Dim length As Integer = originale.Length()
      -If passaggio = length Then
      –Dim num = Int(permutato)
      –If proprietà(num) Then res += +num
      -Else
      –For i = 0 To length – 1
      —If Not usati(i) Then
      —-usati(i) = True
      —-permutazioni_possibile(passaggio + 1, permutato + originale(i), usati, originale)
      —-usati(i) = False
      —End If
      –Next
      -End If
      End Function

      ***Main***
      -res = 0
      -Dim s As String = “0123456789”
      -Dim usa(s.Length) As Boolean
      -For a = 1 To s.Length – 1
      –usa(a) = False
      -Next
      -permutazioni_possibile(0, “”, usa, s)
      -MsgBox(res)
      -Debug.Print(res)
      ***Main***

  3. Alessandro Mian ha detto:

    Prof, una domanda. Tutti i numeri pandigitali hanno la seconda proprietà o solo alcuni?

  4. Filippo Bisconcin ha detto:

    ho difficoltà a ottenere un numero in forma non esponenziale (mi viene 1,45314287127173E+16)

  5. Alessandro Mian ha detto:

    La parte più difficile sta nel trovare tutte le possibili combinazioni, non ci sono ancora riuscito.

  6. Riccardo Vendola ha detto:

    Se ho capito bene i numeri come 0258147369 non sono pandigitali perchè equivale a 258147369 e quindi manca lo zero, giusto??

  7. Filippo Bisconcin ha detto:

    e per “Trovare la somma di tutti i numeri da 0-9 pandigitali con questa proprietà” significa sommare 45 (0+1+2+3+4+5+6+7+8+9) per ogni numero che soddisfa quella proprietà?

  8. Filippo Bisconcin ha detto:

    in un numero pandigitale lo zero può essere anche in prima posizione?

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...