![]() |
Verificar si un número es primo
Hola que tal, soy estudiante de ingeniería, y es mi primer año de principios de computadoras. Es mi primera experiencia programando, así que me esta costando considerablemente, pero espero que con un poco de esfuerzo se pueda mejorar jaja.
Mi primera pregunta en el foro es un ejercicio que me pide que cree un programa en donde me muestre si un numero es primo o no, ya estuve leyendo varias publicaciones e intente hacer el programa pero con algunos errores. De esta manera creo que el error, es que al tener un for, el programa me va a evaluar al numero con cada división desde i:=2 a a-1. Osea que en la mayoría de los números, el resultado va a ser primo pero a la vez no primo.. de que otra manera lo podria restringir esto? lo pense de esta manera porque no me di cuenta que el programa lo iba a evaluar en varias divisiones, sepan entender jaja. Perdon por las molestias, sldos. |
La verdad no he reparado el algoritmo, pero parece que por acá lo han resuelto:
http://www.clubdelphi.com/foros/show...0&postcount=14 |
agustin_uni,
¡Bienvenido al Club Delphi! :D Te sugiero revisar la Guía de estilo de los foros, recomendada a todos los nuevos ingresos al Club Delphi. ¡Gracias por tu cooperación! :) ^\||/ Saludos, Nelson. |
agustin_uni,
Cita:
Revisa este código: El código anterior en Delphi 7 sobre Windows 7 Professional x32, Verifica si un número es Primo o Compuesto. Revisa esta información relacionada: Espero sea útil :) Nelson. |
Si entendí bien tu problema, te sucede que en algunos caso vas a obtener un
monton de mensajes 'no es primo', 'es primo'. Quedando en el edit 2 al final solo el resultado obtenido al dividir un número justo por su anterior. O sea que nunca sera primo, fijate lo que pasa si introduces un 2 o el 1 en el edit1 en tu algoritmo. Lo normal en estos casos sería tener una variable booleana que comenzara a true y se pusiera a false en el momento de encontrar un caso que elimine la posibilidad de que sea primo, rompiendo el bucle en ese momento. Un sencillo ejemplo modificando tu código sería asi
Otra posiblidad podría ser esta:
|
Perfecto! con el boolean puedo solucionar el problema, al programa le doy la condicion de que si sale un a mod i =0 directamente que se haga false, muchas gracias!
|
| La franja horaria es GMT +2. Ahora son las 16:32:25. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi