size : 1060 uploaded_on : Mon Mar 1 00:00:00 1999 modified_on : Wed Dec 8 14:03:35 1999 title : Prime number generation org_filename : primegen.pas author : FrΘdΘric authoremail : fb@rz-online.de description : A fast prime number generator, displays 31000 consecutive primes (beginning with 2) keywords : tested : BP7 submitted_by : The CKB Crew submitted_by_email : ckb@netalive.org uploaded_by : nobody modified_by : nobody owner : nobody lang : pas file-type : text/plain category : pascal-alg-maths __END_OF_HEADER__ { The following program displays 31000 consecutive primes (beginning with 2) in 10 seconds at only 120 MHz. It requires 384,000 bytes of heap memory, I compiled it for protected mode. } program primegen; const Num = 6; type SubArray = array[0..63999] of boolean; var Whole : array[0..Num-1] of ^SubArray; i, j, Size : longint; procedure WriteItem(Index: longint; Value: boolean); var a, b : word; begin a := Index div Size; b := Index mod Size; Whole[a]^[b] := Value end; function ReadItem(Index: longint): boolean; var a, b : word; begin a := Index div Size; b := Index mod Size; ReadItem := Whole[a]^[b] end; begin Writeln('Calculating...'); Size := 64000 div SizeOf(boolean); for i := 0 to Num-1 do New(Whole[i]); for i := 0 to 363269 do WriteItem(i, true); for i := 2 to 363269 div 2 do for j := 2 to (num * size - 1) div i do WriteItem(i * j, false); WriteItem(0,false); for i := 0 to 363269 do if ReadItem(i) then write(i:8); for i := 0 to Num-1 do Dispose(Whole[i]); Readln; end.