Primes by Trial Division - Ada-83

18 April 2017
with Ada_IO; use Ada_IO;
procedure nPrimes is
NumPrimes : constant Integer := 100;
-- NumPrimes : constant Integer := 1000;
-- NumPrimes : constant Integer := 10000;
Index : Integer;
Found : Integer := 0;
Count : Integer := 2;
Primes : array (1 .. NumPrimes) of Integer;
begin
while Found < NumPrimes loop
Found := Found + 1;
Primes(Found) := Count;
put(Count);
new_line;
Count := Count + 1;
Index := 1;
loop
exit when Index > Found;
if Count mod Primes(Index) = 0 then
Count := Count + 1;
Index := 1;
else
Index := Index + 1;
end if;
end loop;
end loop;
end nPrimes;