Números primos en Pascal

Muy buenas, hace un par de meses me pusieron una práctica en mi universidad que trataba sobre hallar los primeros n numeros primos. Tenía habilitado Mooshak para ver si el código era eficiente y correcto pero ya ha cerrado el plazo. Aquí os dejo el código y si a alguien no le supone mucho trabajo darme algún consejo le estaría muy agradecido. Un saludo¡

 PROGRAM primos;    CONST   MAX=1000;     TYPE   TTachados=ARRAY[0..MAX] OF boolean;   VAR   tachados:TTachados;     PROCEDURE primo(VAR tachados:Ttachados);   VAR   n,contar,numero,i,j:integer;   r:real;   BEGIN       FOR i:=1 TO MAX DO       tachados[i]:=FALSE;   readln(n);   numero:=0;   j:=2;       REPEAT j:=j+2;     {Tachamos los múltiplos de dos}       tachados[j]:=TRUE;       UNTIL j> MAX;   j:=3;       REPEAT j:=j+3;    {Tachamos los múltiplos de tres}       tachados[j]:=TRUE;       UNTIL j> max;     i:=1;   contar:=0;       REPEAT i:=i+1;       IF (tachados[i]=FALSE) THEN  {Escribimos los números que son primos mayores que 1}       BEGIN        writeln(i);        contar:=contar+1;       END;       UNTIL contar=n;   readln();     END;     BEGIN          primo(tachados);                              readln();      END