Algoritmia - NUMERO PRIMO

 
Vista:

NUMERO PRIMO

Publicado por eduardo (55 intervenciones) el 18/12/2005 20:52:18
Hola que tal necesito que me ayuden a resolver el algoritmo para saber si un numero es primo o no.....He resuelto una parte pero me encontre con el problema del goto y no debo aplicarlo.....me podrian ayudar se los agradecere mucho..
Tengo algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Inicio
Leer(N)
Si ( N < 2 ) {
Escribir ("No válido")
sino
Si ( N = 2 ) {
Escribir ("Es primo")
sino
x  = 2
Hacer
A = N / x
Si (¿A es entero?) {
Escribir ("No es primo")
goto salir  // ir a etiqueta
sino
x = x + 1
Mientras ( x < N )
Escribir( "Es primo")
}
}
}
salir ;  //etiqueta
Fin
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:NUMERO PRIMO

Publicado por demon (1 intervención) el 21/12/2005 12:53:49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
incio
   int i,suma=0;
        leer (a)
        for I=1;i<a-1;i++
          if (a mod i = 0 )
             suma =suma+1;
          end if
 
if (suma=1)
   escribir ("numero primo);
else
   escribir ("numero no primo);
 
end
mod = resto dela division entera
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

RE:NUMERO PRIMO

Publicado por eduardo (55 intervenciones) el 22/12/2005 23:48:20
Muchas gracias demon funciona perfectamente..
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

RE:NUMERO PRIMO

Publicado por Frank Rafael (2 intervenciones) el 12/03/2006 21:07:38
Uno de los más rápidos... usa el teorema de abajo.

Teorema:
Para todo número primo p > 3, se tiene que p=6k+1 ó p=6k-1

Demostración:
Todos los entero pueden expresarse exactamente de un de las 6 posibles formas:
6k, 6k+1, 6k+2, 6k+3, 6k-2, ó 6k-1
6k es divisible por 6, por lo que no es primo
6k+2 es par, por lo que no es primo
6k+3=3(2k+1) es divisible por 3, por lo que no es primo
6k-2 es par por lo que no es primo
Por tanto, los números primos tienen que expresarse de la forma 6k+1 ó 6k-1.
Note que no todos los números de esa forma son necesariamente primos.


Algoritmo para determinar si un número es primo
En muchas aplicaciones es necesario conocer si un número n es o no primo. Cuando n es muy grande, los algoritmos conocidos son muy ineficientes. Veamos el siguente que es bastante rápido para n no muy grandes.

Determinaremos si un número n es primo, si algún divisor no trivial de n es encontrado, puede asegurarse de que n es compuesto, si ningún divisor es encontrado entonces concluimos que n es primo. El algoritmo está basado entonces en una búsqueda exaustiva de un divisor de n. A continuación un pseudocódigo del algoritmo.

PRIME (x) // x > 3

1 if x mod 6 <> 1 and x mod 6 <> 5
2 then return FALSE
3 r = SQRT(x)
4 i = 1
5 while 6*i-1 <= r do
6 if x mod (6*i-1) = 0
7 then return FALSE
8 if x mod (6*i+1) = 0
9 then return FALSE
10 i = i + 1
11 return TRUE


La criba de Erastótenes
Este un algoritmo conocido desde la antigüedad, para determinar todos los números primos desde 2 hasta un cierto valor n.

El algoritmo está basado en "marcar" todos los números que son múltiplos de algún otro menor. Al final, los números que "hayan sobrevivido a tal marcado" por supuesto, son primos.

CRIBA_DE_ERASTOTENES (max)

1 for i = 2 to max do
2 marked[i] = FALSE
3 for i = 2 to max do
4 if marked[i] = FALSE
5 then k = 2*i
6 while k <= max do
7 marked[k] = TRUE
8 k = k + i
9 return marked


Algoritmos
Nociones elementales en la teoría de los números

Tema por:
Ronny López Trujillo
Selección Nacional de Cuba
XIV IOI Yong-In Korea 2002

Visita la siguinete dirección: http://www.lawebdelprogramador.com/codigo/enlace.php?idp=1319&id=69&texto=Pascal/Turbo+Pascal
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

RE:NUMERO PRIMO

Publicado por Juan (28 intervenciones) el 25/04/2006 21:40:41
Ojo no todos los numeros de la forma 6k-1 son primos. Casos como el 35 (6*6-1) entro muchos otros no son primos.
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

algoritmo para saber si un numero es primo

Publicado por omar  (1 intervención) el 04/09/2008 19:29:28
inicio
leer n
para i←2 , i<2 , i←i+1
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