program ikerprim_kereses; uses Crt, Rutin; var n, k, db, also, felso : longint; function prim_e( szam : longint):boolean; var prim : boolean; i : longint; begin { feltesszk, hogy prm } prim:=TRUE; { vizsgl ciklus , prossgot nem kell vizsglni ! } i:=1; repeat { amg prm vagy a gykt elrtk } { a pratlan szmokkal prbljuk osztani } if szam mod (i*2+1) = 0 then prim:=FALSE; Inc(i); until (i*i>=szam) or (not prim); { eredmny } prim_e:=prim; end; begin ClrScr; WriteLn('P R I M S Z M K E R E S S':55); { beolvass } repeat WriteXY(3,3,'Az intervallum als hatra : '); LongRead(also); until also>0; repeat WriteXY(3,5,'Az intervallum fels hatra : '); LongRead(felso); until felso>also; ClrScr; WriteLn('P R I M S Z M K E R E S S':55); WriteLn; { a primek szmnak meghatrozshoz a darabszm meghatrozsa illetve a 5-nl nem nagyobb prmszmok kirsa } db:=0; if (also<=2) and (felso>=2) then begin Write('2':8); db:=1; end; if (also<=3) and (felso>=3) then begin Write('3':8); if also<3 then db:=2 else db:=1; end; if (also<=5) and (felso>=5) then begin Write('5':8); case also of 1,2 : db:=3; 3 : db:=2; 4,5 : db:=1; end; end; { kezdrtkek } k:=also div 6; n:=6*k+5; while n<=felso do begin { ha n s n+2 is prm, akkor prt talltunk } if prim_e(n) then begin Write(n:8); Inc(db); end; if prim_e(n+2) and (n+2<=felso) then begin Write(n+2:8); Inc(db); end; Inc(k); n:=6*k+5; end; WriteLn; Write(' Az adott [ ',also,' , ',felso,' ] intervallumban ',db,' prmszm tallhat.'); repeat until KeyPressed; end.