Pagina iniziale A scuola di Delphi

Introduzione · Capitolo 1 · Capitolo 2 · Capitolo 3 · Capitolo 4 · Capitolo 5 · Download 

Sommario
Indovina numero
Sistema lineare
Figura
Distr. automatico
Potenze
Mcm
Scomp. in fattori
Numeri primi
 

Capitolo 2

Scomposizione in fattori primi

Questo programma non introduce componenti di Delphi nuovi, ma è interessante dal punto di vista matematico per l'algoritmo di scomposizione in fattori.

Il numero presente nel campo Edit viene memorizzato in una variabile (n); alla pressione del tasto Scomponi, nel campo Memo viene visualizzata la scomposizione in fattori del numero, come se venisse eseguita a mano. Per esempio:

198345510 

|

 2

99172755 

|

 3

33057585 

|

 3

11019195 

|

 3

3673065 

|

 3

1224355 

|

 5

244871 

|

 11

22261 

|

 113

197 

|

 197

1 |

Passiamo al listato della procedura associata al tasto Scomponi:

procedure TFormScomposizione.BitBtnScomponiClick(Sender: TObject);
var
  n, d: Integer;
begin
  n:=StrToInt(Editn.Text);
  MemoScomposizione.Lines.Clear;
  d:=2;
  while n>1 do
    if n mod d=0 then
    begin
      MemoScomposizione.Lines.Add(IntToStr(n)+#9+' | '+IntToStr(d));
      n:=n div d;
    end
    else
      Inc(d);
  MemoScomposizione.Lines.Add(IntToStr(n));
end;

Viene letto il numero n ed assegnato a d il numero 2, che è il primo possibile divisore di n.
Si entra nel ciclo while e si rimane per tutto il tempo in cui n è maggiore di 1, poiché ciò significa che vi sono ancora altri fattori primi da ricercare.
All'interno del ciclo while si vede se n è divisibile per d (n mod d=0): in caso affermativo il divisore d viene visualizzato ed n viene diviso per d (n:=n div d), in caso contrario d viene incrementato di 1 (Inc(d)), per cercare di trovare il divisore successivo.
Alla fine si raggiungerà l'ultimo divisore di n, che nella peggiore delle ipotesi è n stesso, se n è primo, e si uscirà dal ciclo.
Infine viene ancora scritto l'ultimo valore ottenuto per n, che è sicuramente 1.

 2.07 - Scomposizione