Sunteți pe pagina 1din 1

Exemplul urmtor i propune rezolvarea urmtoarei probleme : S se determine

numerele prime mai mici sau egale cu un numar dat n.


Pentru c vom utiliza tipul multime (Set), n va fi cel mult 255.
Vom rezolva aceast problem n felul urmator :
a) iniial Ciur={2,...,n}, Prime={ };
b) cel mai mic element din Ciur va fi mutat n mulimea Prime, iar din Ciur se elimin toi
multiplii acestuia;
c) se repet b) pn cnd Ciur-ul devine vid;
d) mulimea Prime va conine rezultatul care se poate tipri.
Program
Var

Ciurul_lui_Eratostene;
Ciur, Prime, Mp : Set Of 2..255;
p, n : Byte; m : Integer;

(* Numerele prime < n *)

Begin

End.

Write (' Dati n : '); Readln (n);


Ciur:=[2..n]; Prime:=[]; p:=2;
Repeat
If p In Ciur Then Begin
Prime:=Prime+[p];
Mp:=[];
m:=p;
Repeat
Mp:=Mp+[m]; m:=m+p
Until m>n;
Ciur :=Ciur - Mp
End; {If}
p:=p+1
Until Ciur=[];
Write(' Prime = {');
For p:=1 To 255 Do
If p In Prime Then Write (p,',');
Write (Chr(8)+'}');
Readln

(* Prime:=Prime U {p} *)

(* Ciur := Ciur \ Mp

*)

(* Tipar. mult. Prime *)

S-ar putea să vă placă și