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