La fattorizzazione con il metodo delle potenze-esponenziale                              Di Cristiano Armellini cristiano....
Nel caso a = 3import math;def fattore(n):        a = 3;        k = 0;        while k < 200:                m = 2;         ...
Upcoming SlideShare
Loading in …5
×

Algoritmo di Fattorizzazione potenze-esponenziale

514 views

Published on

Algoritmo di Fattorizzazione potenze-esponenziale

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
514
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Algoritmo di Fattorizzazione potenze-esponenziale

  1. 1. La fattorizzazione con il metodo delle potenze-esponenziale Di Cristiano Armellini cristiano.armellini@alice.itSia il numero da fattorizzare con p, q primi molto grandi. Il metodo consiste nel cercare di trovareun fattore diciamo per semplicità p nella forma dove k, m, a sono interi positivi. Si fissa unvalore di a non troppo grande (ad esempio a = 2) poi si fa variare k = 0, ……,100. Per ogni k così fissato si favariare m un certo numero di volte finché forma non divide n. Usando un sistema di calcoloparallelo con molti computer collegati in rete possiamo associare ad ogni pc un valore di k = 0,…., 100 e farvariare m (avendo fissato ad esempio a = 2).Ecco un esempio di codice in Python che spiega il sistema è il seguente (in questo caso a = 2)import math;def fattore(n): a = 2; k = 0; while k < 200: m = 1; while m < 10**6: if n/(a**k+m) == math.floor(n/(a**k+m)): print(a**k+m); print(n/(a**k+m)); return(1); m = m+2; k = k+1;
  2. 2. Nel caso a = 3import math;def fattore(n): a = 3; k = 0; while k < 200: m = 2; while m < 10**6: if n/(a**k+m) == math.floor(n/(a**k+m)): print(a**k+m); print(n/(a**k+m)); return(1); m = m+2; k = k+1;Ora dato che se deve accadere che 2 √ e√ (p<q)Alla luce delle precedenti considerazioni questo vuol dire che se allora 0 √Con √ 0 ovvero log √Mentre per q, ipotizzando anche per q (ovviamente k, m cambiano di valori per p e per q)√ sempre con log √Queste relazioni ci danno precise indicazioni fissati a, k per far variare m. Si può anche ragionare all’inversotrovando dei limiti per k fissati a, m (intervengono i calcoli con i logaritmi)Come si vede con questo algoritmo si riesce facilmente a fattorizzare numeri anche molto grandi nei limitidi calcolo della macchina (nei casi reali i parametri possono essere adattati).

×