Buongiorno a tutti è da tanto che non scrivo per chiedere qualcosa , ma vorrei un parere da esperti , anche se comunque mi è stato praticamente confermato che funziona , ma cercando in rete non ho trovato nulla di simile a riguardo , premetto che ho autopubblica un piccolo libriccino (Metodo Fattorizzazione millennium problem) con il codice C che usa la libreria GMP per effettuare le principali operazioni + x - / con numeri anche di 10.000 cifre .
Nel libro spiego come trovare il numero di cifre esatte di un fattore , partendo da un prodotto N ma questa parte la tralascio per il momento perché non mi sembra essenziale.
Quello che mi interessava , è sapere le cifre esatte dei fattori in maniera relativamente rapida , con questo metodo , quindi se qualcuno lo conosce già.
Quindi ammettendo il fatto che si conosca il numero di cifre di uno dei due fattori di un prodotto N , la procedura è la seguente :
(faccio un copia incolla dal mio libro)
N = 2699 * 4999 = 13492301
Trovare le cifre : Ammettendo che uno dei fattori abbia 4 cifre utilizzerò altrettanti 9 ovvero 9999 (quattro nove) .
Per trovare la prima cifra utilizzerò il metodo Bilancia (A , A1) con confronto Differenza ovvero :
Non contate la differenza A1 per il momento ma contate solamente la differenza A ,fino a toccare un picco minimo di differenza , così sappiamo che la cifra esatta è al picco minimo ( spero si capisca con questi numeri perchè come dicevo appena si raggiunge 4999 la differenza è Zero , e questo è il picco minimo ma giustamente anche il risultato corretto , ed è per questo che in questo esempio A1 non lo utilizziamo come Bilancia con A ). In un altro esempio spiegherò meglio.
Esempio iniziale per trovare la prima cifra partiamo da A = 9999 fino a 1999 ed A1 = 9000 fino a 1000 ( io intanto metto l'inizio):
A:
13492301/9999 = 1349
1349 * 9999 = 13488651
13492301-13488651 = 3650
A1:
13492301/9000 = 1499
1499 * 9000 = 13491000
13492301-13491000 = 1301
----------------------------------
A:
13492301/8999 = 1499
1499 * 8999 = 13489501
13492301-13489501 = 2800
A1:
13492301/8000 = 1686
1686 *8000 = 13488000
13492301-13488000 = 4301
continua.......
Ripeto questo era un numero facile perchè c'era 4999 e non c'era bisogno di passare alla seconda cifra , ma se
avessi dovuto passare alla seconda cifra avrei proceduto con A= 4999 fino a 4099 ed A1 = 4900 fino a 4000 (quindi
sottraendo sempre una unita' dalla seconda cifra fino al picco minimo , per poi passare alla terza cifra eccetera...).
Questo è quanto. Grazie a tutti.
Alessandro