Foros del Web » Creando para Internet » Flash y Actionscript »

verificar numeros primos

Estas en el tema de verificar numeros primos en el foro de Flash y Actionscript en Foros del Web. estoy tratando de verificar si un numero que ingreso es primo o no solo utilizando if y while pero hay algo que no me sale ...
  #1 (permalink)  
Antiguo 09/05/2005, 12:44
Avatar de chaval  
Fecha de Ingreso: febrero-2003
Ubicación: en elgun lugar del cyberespacio
Mensajes: 118
Antigüedad: 14 años, 10 meses
Puntos: 0
verificar numeros primos

estoy tratando de verificar si un numero que ingreso es primo o no solo utilizando if y while pero hay algo que no me sale bien por lo visto, yo hago esto:
en el frame
ingreso un numero "a" (stop)
que luego me direcciona al frame 2:
Código:
d=2;
while (d<a) {
	r=a%d; //calculo el resto
	d += 1;
	if (r=0){
		gotoAndStop(14);
	}
}
gotoAndStop(15);
en el frame 14 iria "ES PRIMO"
y en el frama 15 "NO ES PRIMO"

¿alguien me podria dar una mano?

gracias
El Chaval
__________________
CHAVAL
Buenos Aires, Argentina, América, La Tierra,
Via Lactea, Universo Tridemensional... :pensando:
  #2 (permalink)  
Antiguo 09/05/2005, 14:01
Avatar de chaval  
Fecha de Ingreso: febrero-2003
Ubicación: en elgun lugar del cyberespacio
Mensajes: 118
Antigüedad: 14 años, 10 meses
Puntos: 0
otra cosa que hice fue:
Código:
d=2;
while ((a%d) != 0 & d<a) {
	r = (a%d);
	d += 1;
}

if (r=0) {
	gotoAndStop(14);
} else {
	gotoAndStop(15);
}
stop();
__________________
CHAVAL
Buenos Aires, Argentina, América, La Tierra,
Via Lactea, Universo Tridemensional... :pensando:
  #3 (permalink)  
Antiguo 09/05/2005, 14:15
Avatar de chaval  
Fecha de Ingreso: febrero-2003
Ubicación: en elgun lugar del cyberespacio
Mensajes: 118
Antigüedad: 14 años, 10 meses
Puntos: 0
por ultimo el logrado hacerlo salvo cuando introduzco "2" en a, que me lo muestra como un numero no primo:
Código:
d=2;
while ((a%d) != 0 & d<a-1) {
	d += 1;
}
if ((a%d) == 0) {
	gotoAndStop(14);
} else {
	gotoAndStop(15);
}
stop();
__________________
CHAVAL
Buenos Aires, Argentina, América, La Tierra,
Via Lactea, Universo Tridemensional... :pensando:

Última edición por chaval; 09/05/2005 a las 14:22
  #4 (permalink)  
Antiguo 09/05/2005, 17:18
 
Fecha de Ingreso: abril-2005
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
en este ultimo como a = 2 y b = 2; no entra al while, pero de todas maneras... 2%2=0;
entonces la solucion es este if:
if((a%d)==0 & (a!=2))

SALUDOS!!!
  #5 (permalink)  
Antiguo 09/05/2005, 17:31
Avatar de chaval  
Fecha de Ingreso: febrero-2003
Ubicación: en elgun lugar del cyberespacio
Mensajes: 118
Antigüedad: 14 años, 10 meses
Puntos: 0
muchas gracias.
__________________
CHAVAL
Buenos Aires, Argentina, América, La Tierra,
Via Lactea, Universo Tridemensional... :pensando:
  #6 (permalink)  
Antiguo 09/05/2005, 17:40
 
Fecha de Ingreso: agosto-2004
Mensajes: 67
Antigüedad: 13 años, 3 meses
Puntos: 0
Asi lo haria yo

De esta forma haces que no verifique divisores mayores a la mitad del numero, ya que una vez que el numero es mayor a la mitad ya sabemos que no va a ser divisor. Y tampoco sigue verificando una vez que ya se dio cuenta que no es primo.

Código:
d=2;
esprimo=1;

while((esprimo)&&(d<(num/2))){
	if((num%d)==0){
		esprimo=0;
	}
             d++;
}

if (esprimo){
	resp.text="es primo";
}else{
	resp.text="no es primo";
}
yo al final estoy volcando la respuesta en un texto, pero tambien se podria poner los gotoAndStop que pusiste antes. Espero te sirva.
Hasta luego

Última edición por duende1422; 09/05/2005 a las 17:45
  #7 (permalink)  
Antiguo 09/05/2005, 18:52
Avatar de chaval  
Fecha de Ingreso: febrero-2003
Ubicación: en elgun lugar del cyberespacio
Mensajes: 118
Antigüedad: 14 años, 10 meses
Puntos: 0
muchas gracias
__________________
CHAVAL
Buenos Aires, Argentina, América, La Tierra,
Via Lactea, Universo Tridemensional... :pensando:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:29.