Foro de elhacker.net

Programación => Java => Mensaje iniciado por: hecdoteam en 23 Mayo 2018, 06:03 am



Título: Ayuda Estudiante Java Saber si un numero es primo sin usar arreglos
Publicado por: hecdoteam en 23 Mayo 2018, 06:03 am
 >:DQuisiera que alguien super inteligente me saque de la duda si esto es posible o no, no me den respuestas de lento pensar, haciendo comprobaciones con el listado de todos los numeros y comprobando si esta... es algo de tarea programacion 1 eh visto de todo y no encuentro nisiquiera una formula que pueda hacer sin ningun arreglo en java.


Título: Re: Ayuda Estudiante Java Saber si un numero es primo sin usar arreglos
Publicado por: engel lex en 23 Mayo 2018, 06:24 am
no se cuales has visto... pero no es necesairo arreglo, sería absurdo, como compruebas un numero primo desconociendo los anteriores?


simplemente con comprobar si el numero es multiplo (funcion modulo) de otro más que si mismo y uno basta...  


Título: Re: Ayuda Estudiante Java Saber si un numero es primo sin usar arreglos
Publicado por: hecdoteam en 23 Mayo 2018, 07:23 am
Saludos tendrias que ser mas espesifico, me dices hacer
Código:
si(numero % numero ==0 && numero % 1 == 0) entonces es primo

aclaro que eso no tiene sentido... no funciona.


Título: Re: Ayuda Estudiante Java Saber si un numero es primo sin usar arreglos
Publicado por: engel lex en 23 Mayo 2018, 07:29 am
Código:
para contardor desde 2 hasta numero-1 entonces
  si numero modulo contardor ==  0 entonces
    retornar "No es primo"
  fin si
fin para
retornar "Es primo"

pruebas todos los numeros desde 2 (ya que el 1 sabemos que siempre divide) hasta el numero menos 1 (esto se puede hacer más optimo, pero debes leer wikipedia sobre los numeros primos y entenderlo, si no, así funciona de todas formas)

esto hará que si tienes por ejemplo 11 divida entre 2,3,4,5,6,7,8,9,10 y como no es divisible entre ninguno, sabemos que es primo

el retorno en el si, romperá el flujo del codigo (por consecuencia el ciclo) evitando calculos innecesarios


Título: Re: Ayuda Estudiante Java Saber si un numero es primo sin usar arreglos
Publicado por: animanegra en 23 Mayo 2018, 10:34 am
Creo que la pregunta iba en dirección más teórica de si existe una fórmula matemática o lógica para saber si un número es primo per se. Es lo que creo entender por tu primer post, en el que parece que quieres una forma de comprobación de primos que no exija tener array y que no sea lo típico de comprobar los N (N/2) números anteriores. Si la pregunta va por ahi, no, no existe.
De hecho la forma de comprobación de primos muy grandes, los que utilizamos para temas de cifrado RSA, es una fórma estadística que asegura con una alta probabilidad que el número elegido es primo pero no llega al 100%. Se llama metodo de rabin miller y se basa en primero realizar la criba usual de erastoteles de los 2000 primeros primos, más una serie de reglas adicionales sencillas que permiten su verificación estadística.


Título: Re: Ayuda Estudiante Java Saber si un numero es primo sin usar arreglos
Publicado por: Serapis en 24 Mayo 2018, 02:25 am
>:DQuisiera que alguien super inteligente me saque de la duda si esto es posible o no, no me den respuestas de lento pensar, haciendo comprobaciones con el listado de todos los numeros y comprobando si esta... es algo de tarea programacion 1 eh visto de todo y no encuentro nisiquiera una formula que pueda hacer sin ningun arreglo en java.
Ni en Java ni en ningún otro lenguaje.

Actualmente no existe ningún algoritmo en tiempo polinomial para resolver si un número dado es primo. Exige usar los primos menores que él.
Si no tiene divisores, es primo...
...luego, que calcules esos primos sobre la marcha o que uses una lista ya precalculada, solo sirve para acelerar la búsqueda.

La solución a ese problema pertenece al cuerpo teórico de las matemáticas.
Mi intuición me dice que sí que existe una función así, pero... de momento, es algo irresoluble.