Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ejercicio- numero primo (https://www.clubdelphi.com/foros/showthread.php?t=77532)

Laurogriffin 04-02-2012 21:02:57

Ejercicio- numero primo
 
me marcaron este ejercicio:

Realiza un programa que lea un número entero y escriba si es o no numero primo.

¿alguna sugerencia? ¿hay varias formas para resolverlo?

ya intente de todo no le encuentro la manera.

soy noob jaja

Caral 04-02-2012 21:43:52

Hola
Se ha comentado de esto muchas veces en el Club.
Buscando....
Saludos

fidel 05-02-2012 19:50:34

Realiza un ejercicio se refiere a tí, por lo tanto no te lo voy a hacer, entre otras cosas porque no aprenderías nada, pero te voy a dar unas pautas que funcionan y que hacen que la búsqueda sea rápida incluso para números grandes (de 9 cifras por ejemplo)

//parece ser que si un número no es divisible entre los primos
//del 1 al 3361 (son 475 primos) es seguro que es primo, por lo
//que para comprobar si es primo no es necesario dividirle
//entre todos los números menores que él, basta con dividirle
//entre los 475 primeros primos y si no es divisible entre
//ninguno de ellos el número es seguro que es primo

Por lo tanto

//coger en un array de 475 elementos los primos del 1 al 3361
//recorres números de 1 al 3361 (solo impares, los pares no son primos) con un bucle
//les vas dividiendo entre sus menores (usa mod para ver si da exacto) para ver si son o no primos
//esto lo debes saber, si en alguna operación te da resto 0 ya no es primo
//el que sea primo le vas guardando en el array y así lo llenaras con los 475 primeros primos


Despues comprobamos el número
Le vas dividiendo entre los primos guardados en el array (usa mod) si hay alguna división de resto 0 no es primo en caso contraio si.

ecfisa 05-02-2012 22:28:06

Hola Laurogriffin.

Como ya te comentó mi amigo Caral es un tema muy trillado y darte el código funcionando, no te va a ayudar en nada como bién menciona fidel (que también expuso un modo muy interesante).

Te agrego otras pautas que tal vez te ayuden:

La forma más sencilla (y la más lenta) es probar de dividir el número a evaluar (N) por todos los números (i) menores que él , exépto la unidad, es decir: i desde 2 hasta N-1. Si ninguno lo divide exáctamente, es primo. Este método se puede mejorar, el mayor divisor distinto de N es N/2 y si N/2 es divisor de N también lo es 2, el siguiente divisor mas grande es N/3 ..., ... , y siguiendo la analogía, hasta que N/i = i, es decir N = i², por lo que basta con dividir a N hasta que i = √N.

También te puede interesar este tema: Criba de Eratóstenes

Saludos.


La franja horaria es GMT +2. Ahora son las 04:46:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi