Pascal/Turbo Pascal - Ayuda por favor!!

 
Vista:

Ayuda por favor!!

Publicado por Pablo Maluenda (4 intervenciones) el 10/08/2002 07:57:25
Tengo que hacer un programa en pascalque me diga si el numero es primo o no... Hasta el momento he encontrado este, pero no logro entenderlo muy bien, especialmente la parte de FLAG...

PROGRAM PRIMOS;
USES CRT;

VAR i,num,flag:INTEGER;

BEGIN
ClrScr;
flag:=0;

WRITE('Introduzca un numero -> ');
READLN(num);

FOR i:=2 TO (num-1) DO
BEGIN
IF (num mod i)=0 THEN
flag:=1;
END;

IF flag=1 THEN
BEGIN
WRITE(num); WRITE(' no es un numero primo');
END
ELSE
BEGIN
WRITE(num); WRITE(' es un numero primo');
END;
readkey
END.

Tengo una prueba el lunes y tengo este problema,porfavor alguien me ayude,,,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda por favor!!

Publicado por Roberto Garcia (128 intervenciones) el 11/08/2002 06:03:28
Esta muy claro.

La condicion que debe cumplir un numero para ser primo es que solo sea divisible entre 1 y el mismo numero.

El ciclo empieza a partir de 2 y termina un numero antes del numero que se esta buscando, por ejemplo si das un 9, i va a tomar valores de 2 hasta 8.

entonces si ( num mod i ) devuelve 0 dentro del ciclo automaticamente el numero deja de ser primo porque es divisible entre 1, el mismo numero y entre el valor que tenga " i " y cuando ocurre eso a flag se le asigna 1 para saber que hubo una division y asi mandar el mensaje de que no es primo, es como si en vez de flag usaramos bandera:boolean y en vez de ponerle 1 le ponemos true.

el pograma es bueno, pero para numeros grandes desperdiciaria mucho tiempo, una mejora seria usar un while en vez de for

bandera:=false;
i:=2;
while ( i<num ) and not bandera do begin
if ( num mod i ) = 0 then
bandera:=true;
i:= i + 1;
end;

ó

while ( i<num ) and not bandera do begin
bandera:= num mod i = 0
inc( i );
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Muchas Gracias!

Publicado por Pablo Maluenda (4 intervenciones) el 12/08/2002 00:12:21
Me quedo clarisimo. Muchas gracias, me salvaste...
Gracias..
Pablo Maluenda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar