[Back to MATH SWAG index]  [Back to Main SWAG index]  [Original]

{
SAM HASINOFF

LoopNum forget who first asked this question, but here is some code to help
you find your prime numbers in its entirety (tested):
}

Uses
  Crt;

Label
  get_out;
Var
  LoopNum,
  Count,
  MinPrime,
  MaxPrime,
  PrimeCount : Integer;
  Prime      : Boolean;
  max        : String[20];
  ECode      : Integer;
begin
  minprime := 0;
  maxprime := 0;

  ClrScr;
  Write('Lower limit For prime number search [1]: ');
  readln(max);
  val(max, minprime, ECode);

  if (minprime < 1) then
    minprime := 1;
  Repeat
    GotoXY(1, 2);
    ClrEol;
    Write('Upper limit: ');
    readln(max);
    val(max, maxprime, ECode);
  Until (maxprime > minprime);

  WriteLn;
  PrimeCount := 0;

  For LoopNum := minprime to maxprime do
  begin
    prime := True;
    Count := 2;

    While (Count <= (LoopNum div 2)) and (Prime) do
    begin
      if (LoopNum mod Count = 0) then
        prime := False;
      Inc(Count);
    end;

    if (Prime) then
    begin
      Write('[');
      TextColor(white);
      Write(LoopNum);
      TextColor(lightgray);
      Write('] ');
      Inc(PrimeCount);
      if WhereX > 75 then
        Write(#13#10);
    end;
    if WhereY = 24 then
    begin
      Write('-- More --');
      ReadKey;
      ClrScr;
    end;
    prime := False;
  end;
  Write(#13#10#10);
  Writeln(PrimeCount, ' primes found.', #13#10);
end.

[Back to MATH SWAG index]  [Back to Main SWAG index]  [Original]