Problema: trovare un intero tale che spostando l'ultima cifra di fronte al numero si raddoppi il numero originario.
Soluzione:
Scrivere il numero come
10 * N + i
dove N è un intero a n cifre, i una cifra
Allora:
2 * (10 * N + i) = i * 10^n + N
19 * N = i * (10^n - 2)
N = (i * (10^n - 2))/19
Dato che 19 è primo e non divide i, deve dividere 10^n - 2
Dal teorema di Fermat:
X^(p-1) è divisibile per p se p è primo e non divide X
Quindi 10^18 - 1 è divisibile per 19
Utilizzando le congruenze di Gauss, sciviamo quanto appena ottenuto come
10^18 icw 1 mod 19 (icw="is congruent with", ovvero 10^18 da come resto 1 quando diviso per 19)
e
(A) 10^18 icw 20 mod 19 (possiamo aggiungere 19)
(B) 10^1 icw 10 mod 19 (10 diviso per 19 da come resto 10)
Dividendo (A) per (B):
10^17 icw 2 mod 19, ovvero
10^17 - 2 e' divisibile per 19
Quindi N = (i * (10^17 - 2))/19
e l'intero cercato (10 * N + i) e' allora:
10 * (i * (10^17 - 2))/19 + i
In teoria i=(1,...9)
Con 1 però non funziona perché un numero la metà di un numero che inizia per 1 ha una cifra in meno. Con 2,...9 tutto a posto.
Ovviamente questo non è il modo più rapido di costruire una soluzione. Si parte da i=2 e si compongono a partire da destra verso sinistra il numero e il suo doppio ottenuto per spostamento della cifra finale
Scrivo
numero base ......2
numero doppio ......4
(#) poi scrivo la cifra ottenuta dal raddoppio alla sx di quella di partenza
numero base .....42
e quindi
numero doppio .....84
ripeto il punto (#)
numero base ....842
e di conseguenza
numero doppio ....684
con riporto uno
ancora
numero base ...6842
numero doppio ...3684
avendo sommato 1 che riportavo. Proseguo cosi' fino alla 18a cifra, ovvero quando nel numero doppio mi si ripresenta la cifra iniziale (in questo caso 2), senza riporti:
105263157894736842
210526315789473684