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

    {
    JONATHAN WRIGHT

    Here is source For finding primes.  I just pulled this off of an OLD backup
    disk, so I don't Really know how optimized it is, but it works:
    }

    Const
      FirstPrime = 2;
      MaxPrimes  = 16000; (* Limit 64k For one Array, little more work For more *)

    Var
      Primes      : Array [1..MaxPrimes] of LongInt;

      PrimesFound : LongInt;
      TestNumber  : LongInt;
      Count       : LongInt;

      IsPrime     : Boolean;

    begin
      PrimesFound := 1;
      TestNumber  := FirstPrime + 1;

      For Count := 1 to MaxPrimes DO
        Primes[Count] := 0;

      Primes[1] := FirstPrime;

      Repeat
        Count   := 1;
        IsPrime := True;

        Repeat
          if Odd (TestNumber) then
            if TestNumber MOD Primes[Count] = 0 then
              IsPrime := False;
              INC (Count);
        Until (IsPrime = False) or (Count > PrimesFound);

        if IsPrime = True then
        begin
          INC (PrimesFound);
          Primes[PrimesFound] := TestNumber;
          Write (TestNumber, ', ');
        end;
        INC (TestNumber);
      Until PrimesFound = MaxPrimes;
    end.

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