2
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math; type TForm1 = class(TForm) Edit2: TEdit; Button1: TButton; Memo1: TMemo; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var a,b,N,i,j,k,m,Contador1,Contador2,Divisor,Cociente: Integer; begin a:= StrToInt(Edit1.Text); b:= StrToInt(Edit2.Text); for N := a to b do begin Contador1:= 0; for i := 2 to N div 2 do if N mod i = 0 then Contador1:= Contador1 + 1; if Contador1 <> 0 then // Memo1.Lines.Append('El numero '+IntToStr(N)+' no es semiprimo') // else // Si el numero no es primo entonces comenzamos una serie de instruccion es NUEVAS !!! //------------------------------------------------------------------------------ begin for j := 2 to N - 1 do if N mod j = 0 then begin Divisor:= j; Contador2:= 0; for k := 2 to Divisor div 2 do // Este ciclo corrobora que el primer div isor encontrado de N sea primo if Divisor mod k = 0 then Contador2:= Contador2 + 1;

Codigo de Numeros Semiprimos en Pantalla

Embed Size (px)

DESCRIPTION

Semiprimes numbers

Citation preview

Page 1: Codigo de Numeros Semiprimos en Pantalla

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math;

type TForm1 = class(TForm) Edit2: TEdit; Button1: TButton; Memo1: TMemo; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);vara,b,N,i,j,k,m,Contador1,Contador2,Divisor,Cociente: Integer;

begina:= StrToInt(Edit1.Text);b:= StrToInt(Edit2.Text);

for N := a to b dobegin Contador1:= 0;

for i := 2 to N div 2 do if N mod i = 0 then Contador1:= Contador1 + 1;

if Contador1 <> 0 then// Memo1.Lines.Append('El numero '+IntToStr(N)+' no es semiprimo')// else // Si el numero no es primo entonces comenzamos una serie de instrucciones NUEVAS !!!//------------------------------------------------------------------------------ begin for j := 2 to N - 1 do if N mod j = 0 then begin Divisor:= j; Contador2:= 0; for k := 2 to Divisor div 2 do // Este ciclo corrobora que el primer divisor encontrado de N sea primo if Divisor mod k = 0 then Contador2:= Contador2 + 1;

Page 2: Codigo de Numeros Semiprimos en Pantalla

if Contador2 = 0 then begin Cociente:= N div Divisor; Contador2:= 0; for m := 2 to Cociente div 2 do if Cociente mod m = 0 then Contador2:= Contador2 + 1; end; end;

if Contador2 = 0 then Memo1.Lines.Append(IntToStr(N))// else// Memo1.Lines.Append('El numero '+IntToStr(N)+' no es semiprimo'); end;end; // Fin del ciclo for N:= a to b do

end;

end.