Trovare un numero di quattro cifre ABCD tale che ABCD moltiplicato per quattro dia un numero con le cifre invertite: ABCD*4=DCBA

Trovare un numero di quattro cifre ABCD tale che ABCD moltiplicato per quattro dia un numero con le cifre invertite: ABCD*4=DCBA

Ho cominciato a fare una selezione sui due estremi e ho trovato papabili solo 2 e 8. Poi ho esplorato tutte le 100 possibilità per le due cifre interne.

per quelle ho usato un programmino. Ma la scelta di 2 e 8 l'ho fatta ragionando. Il massimo numero a 4 cifre che moltiplicato per 4 rimane a 4 cifre è 2499. Quindi la prima cifra può essere solo 1 o 2. Ho visto poi che 4*2=8 e che 4*8=32. Quindi 2 e 8 si trasformano l'uno nell'altro, ma solo 2 poteva essere la prima cifra e quindi 8 l'ultima. Poi, come ti dicevo, con un programmino ho costruito i numeri da 2008 a 2998 e ho verificato direttamente questi.
for i=0:99, x(i+1)=(200+i)*10+8
È un semplice ciclo for, che ho riportato sopra. Poi ho moltiplicato per 4 quei 100 numeri e ho cercato a vista il papabile. Per fortuna è bastato solo arrivare al 18°.
A deve essere pari e siccome pur moltiplicando per 4, il risultato deve rimanere nelle 4 cifre, non può che essere 2; a questo punto D non può essere che 8; per quanto riguarda B non rimane che l’1 in quanto se fosse 3 il termine D non sarebbe a quel punto 8 ma 9; sul termine C, finendo il risultato con 12, con un riporto di 3 da sottrarre dall’1, si ha che è un termine la cui moltiplicazione con 4 da come termine finale 8, da cui 2 e 7 e se le cifre sono differenti tra loro scartiamo il 2, da cui 7.
la prima è l'ultima cifra devono essere 2 e 8. Devo quindi cercare due interi a e b compresi tra 0 e 9 tali che 4*(2008 + 100a + 10b) = 8002 + 100b + 10a, ovvero 8032 + 400a +40b = 8002 + 100b + 10a, da cui la relazione 30 + 390a - 60b = 0 con il vincolo a e b interi non negativi e minori di 10. Esplicitando rispetto a b ottengo b = 1/2 + 39/6 a ovvero b =1/2 + 13/2 a. Affinché b sia intero, a dev'essere dispari e affinché b non superi 9, l'unica opzione possibile è a=1 da cui b=7. Il numero cercato è quindi 2178 [rispetto al testo del problema, sostituire ovunque a con B e b con C]
for a in range (1,9):
for b in range (1,9):
for c in range (1,9):
for d in range (1,9):
if not(a==b or a==c or a==d or b==c or b==d or c==d):
n1=1000*a+100*b+10*c+d
n2=1000*d+100*c+10*b+a
if 4*n1==n2:
print(n1,n2)

About Post Author

pasquale.clarizio

error: Content is protected !!
Advertisment ad adsense adlogger