[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]