home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
magazine
/
pctech
/
1986_04
/
sieve.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1986-01-20
|
1KB
|
59 lines
program SIEVE;
const
size = 7000;
var
flags : array [0..7000] of byte;
hour,min,sec,frac,count,i,prime,k : integer;
procedure TIMER;
type
REGPACK = record
AX,BX,CX,DX,BP,SI,DI,DS,ES,FLAGS : integer
end;
var
regs: Regpack;
begin
with REGS do
begin
AX := $2C00;
MsDos(REGS);
HOUR := hi(CX);
MIN := lo(CX);
SEC := hi(DX);
FRAC := lo(DX);
end;
end;
begin
writeln('Sieve of Erastosthenes'); writeln;
count := 0;
for i := 0 to size do flags[i] := 1;
timer;
writeln('Start : ',min,':',sec,'.',frac);
for i := 0 to size do
begin
if flags[i] = 1 then
begin
prime := i+i+3;
k := i + prime;
while k <= 960 do
begin
flags[k] := 0;
k := k + prime;
end;
count := count + 1;
end;
end;
timer;
writeln('Start : ',min,':',sec,'.',frac);
writeln(count,' primes found.');
end.