[ Foro de Pascal ]
Crea un array dinámico (sin límite de tamaño) de números enteros grandes (LongInt). Luego pide un numero N entero y positivo y da ese tamaño al array y lo rellenas con los N primeros numeros primos.
Buenas, tengo un problema a la hora de terminar un bucle while en pascal del ejercicio en cuestion paso aqui el codigo para ver si me podeis ayudar
program Ejercicio07;
uses crt,SysUtils,wincrt;
function es_primo(num:longint):boolean;
var
divisor:integer;
Begin
es_primo:=true;
divisor:=2;
while (divisor<num) and es_primo do
begin
if num mod divisor = 0 then
es_primo:=false;
divisor:=divisor+1
end;
end;
type
tprimo = record
primo : longint;
end;
var
a:array of tprimo;
n:longint;
count:longint;
begin
count:=1;
write('Escribe un numero entero positivo: '); readln(n);
SetLength(a, n);
while count >= 1 do
begin
if es_primo(count)
then begin
write(a[count].primo);
Inc(count);
end;
if count >= 0 then begin
write('Cuenta de numeros primos realizada');
end;
end;
end.
el ultimo if count parece que no va bien y me crea un bucle infinito de write
Claro. Si "count" empieza valiendo 1, y lo incrementas en cada pasada, "while count >= 1" será verdadero siempre, y no se interrumpirá.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)