Números primos en Java Noviembre 26, 2006
Publicado por lineadecodigo en : Java , trackbackUn número primo es aquel número que solo es divisible por si mismo y por la unidad. Por convención se asume que el número 1 es también primo. Así, los veinte primeros números primos son: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67 y 71.
Veámos como podemos implementar un algoritmo en Java que nos permita saber si dado un número, saber si este es un número primo o no.
Lo primero que haremos será definir una función que reciba un entero como parámetro (que será el número a conocer) y devolverá un booleano indicando si el número es primo o no.
public boolean esPrimo(int numero) { ... }
Lo que vamos a hacer es recorrer todos los números entre el 2 y el número sobre el que queremos saber si es primo o no. Dentro del bucle comprobaremos el principio del número primo. "Divisible por si mismo y la unidad". Es decir, que si encontramos un número que es divisible por el número evaluado, este dejará de ser primo.
Por ejemplo, el número 10 no es primo. Ya que 10 es divisible por 2 y 5. Esto, expresado en terminos matemáticos vendría a decir, que el resto entre los dos números es 0. Veámoslo:
10/2 = 5, resto 0 10/5 = 2, resto 0
La función que nos ayuda a conocer el resto entre dos números es el modulo. Y en Java se representa con el tanto por ciento. Así:
10%2 = 0 10%5 = 0 10%3 = 1 (Ya que 10/3 = 3 y el resto es 1)
Por lo tanto, dentro del bucle comprobamos el módulo del número a evaluar con el del contador. Si el módulo es distinto de 0 cambiaremos una variable semáforo a false. Esta variable indicará que el número evaludado ya no es primo y nos servirá para salir del bucle.
Veámos el código:
int contador = 2;
boolean primo=true;
while ((primo) && (contador!=numero)){
if (numero % contador == 0)
primo = false;
contador++;
}
Al ver este código podemos ver que con la variable de contro asumimos que el número a evaluar es primo. Esta variable será la que devolvamos como retorno de la función:
return primo;
Otra cosa interesante es que para evaluar los números que hay entre el 2 y el número sobre el que queremos saber si es primo podemos hacerlo de dos formas:
- Ir desde el 2 a el número. De forma ascendente.
- Ir del número a el 2. De forma descendente.
Cabe señalar que en este caso es mejor el primer punto, ya que encontraremos un divisor antes yendo de los números pequeños a los grandes. Por consiguiente evitaremos ciclos de procesamiento y la respuesta será más rápida.
El código sería el siguiente:
public static boolean esPrimo(int numero){
int contador = 2;<
boolean primo=true;
while ((primo) && (contador!=numero)){
if (numero % contador == 0)
primo = false;
contador++;
}
return primo;
}
Estos algoritmos son de un gran coste computacional, sobre todo si se quiere hacer sobre números muy grandes. Por ejemplo, el algoritmo de seguridad RSA basa el calculo de la clave publica en la multiplicación de dos números primos mayores de 10100. Característica que lo hace ser seguro.
Esta claro que nuestro código no es que sea un código para pruebas computacionales CPU intensivas. Pero alguna mejora podemos tener en nuestro código. Y es que una de las características de los números primos es que nunca tendremos un número primo que sea par. Eso quiere decir que si el número a evaluar es par, directamente lo podemos descartar, por lo cual recuperaremos ciclos computacionales.
Para saber si un número es par podemos utilizar la función del módulo. Y es que si el número dividido entre 2 da un resto de 0, entonces este número es par.
A nuestro anterior código le añadiremos la siguiente línea de código:
if (numero%2==0) return false;


(6 votos, media: 4.33 de 5)
Comentarios»
como realizar un algoritmo de los numeros primos en c#
Calcular un numero primo
cuando un numero es divisible por siete y por once.
por favor algoritmo que dado un numero primo me calcule el primo siguiente inmediato
hola ayuda urgente nesecito aprender codigo en c++ porfavor!!!
me gustaria saber como podria hacer numeros primos ,capicua y perfectos y ala vez convertir estos en letras en romanos ,invertido y factorial y tambien presentarlo en forma ascendente y descendente pero me pidireon en netbeans ,me gustaria q me ayudes por favor o almenso indicarme como mas menos lo podria hacer graxias .
me gustaria hacerlo pero en netbeans o en jbuilder ok graxias
QUIERO HACER UN PROGRAMA CON PASCAL QUE AL INGRESAR EL NUMERO ME DIGA DESDE EL 0 HASTA EL INGRESADO SI ES NUMERO PRIMO O NO
hola quiero calcular cualquier numero natural y devolverlo con el mayor numero posible q se pueda formar con sus digitos
// Listador de nros. primos entre 0 y 100 cont ndolos
#include
#include
void main(void)
{ int i,p,sen=0,tp=0;
float j,n;
for(i=0;i
como se escribe “mod” en eclipse java
haber algun crack por ahi, yo recien estoy entrando a esto de los algoritmos eee, haber si alguien me ayuda a realizar un algo ritmo que me sace un numero capicua, la cuention es que introduzco un numero: 79 y me lo de la inversa 97 estoy dos numero se compara y se ve que no es capicua bueno despues de esto el 97 que es su inversa se lo suma con el primero numero que es 79:::::::::79+97=176 si esto no es capicua se lo suma con su inversa hasta llegar a un numero capicua
el algoritmo funciona mucho mejor si el control “contador != numero” se hace “contador != numero/2+1″ por lo menos, ya que los numero de “numero/2″ hasta “numero” no sirven para validar si el numero es primo!!! porque sus divisiones están en el intervalo [1,2]
como realizar un programa de un cemaforo con atributos y metodos
me gustaria saber como podria hacer en una serie calcular los numeros primos ,capicua y perfectos a la vez pero en nettbeans y en GUI(Frame) ,ayuda please .
necesito un programa de numeros romanos en nethbeans me urge si alguien me puede ayudar a realizar este programa
viejo es mucho mas eficiente que hagas el ciclo solamente hasta la raiz del numero que kieres saber si es primo, ya que hacia arriba de la raiz no vas a encontrar ningun divisor (en caso de ser primo) o en su defecto podrias encontrar divisor pero ya habras encontrado uno mas pequeño (osea ya habras encontrado que es divisible de igual forma) por lo tanto perderas muchas iteraciones
hola necesito saber el algoritmo de convertir un numero natural a romano en lenguaje php
QUIERO HACER UN PROGRAMA QUE ME PERMITA INGRESAR TRES NUMEROS Y Y ME PRESENTE EN FORMA ASCENDENTE
EN C++
HOLA COMO ESTA SI QUIEREN PUEDEN CHATEAR EN MI CORREO Q ES JMDIAZCRUZ@HOTMAIL.COM
Hola, buscaba un algoritmo que reciba n numeros, cuente los que son multiplos de 3,5,7,12.
HEY NECESITO UN ALGORITMO QUE CAMBIE NUMEROS ARABIGOS A ROMANOS
necesito un programa que me de los productos de tres numeros en c por favor
nescesito saber el numero 11300 en romano
No recuerdo mucho de los numeros romanos. Me gustaria recordarlos. Les agradesco si me pueden ayudar.
Gracias
¡hola! nesesito su que me ayuden si! porfa como realisar el numero
divisible de….. —20–entre
14
¡hola! nesesito que me ayuden si! porfa como realisar el numero
divisible de….. 20entre
—
14
hola nececito que me ayuden con un programa en java para n numeros pa ra numeros primos
Hola como andan..me gustaria si alguien me puede ayudar ..en java, tengo haceer un programa q me diga la cantidad de numeros capicuas que exitan de 5 cifras q los cuente y los muestre…
:S
@Ricardo
El mod se escribe con el símbolo del tanto por ciento (%)
@Ivan
He publicado un artículo que te ayudará con el tema de los múltiplos. Lo puedes leer en Multiplo de un número en Java
Espero que te sea de ayuda.
necesito saber como se escribe 2007 en numeros romanos
MMVII es 2007 en romano
alguien esta por ahi?
Saludos cual es la lìnea de còdigo para encontar los 100 primeros numeros primos en c#???
HOLA QUISIERA QUE ALGUIEN ME AYUDARA REALIZAR UN PROGRAMA EN JAVA QUE NUESTRE EN PANTALLA LOS NUMEROS PRIMOS GRACIAS
urgente ayundenme a realizar programa que muestre en pantalla los numeros primos gracias
como puedo calcular numeros primos, pido n por teclado y me regresa los numeros primos de 0 a n
hola a todos necesito un favor como hago para construir un programa que solicite al usuario n números enteros positivos y obtenga:
La cantidad y la suma de los números que son primos.
La cantidad y el producto de los números que no son primos
si alguien sabe como se convierte numeros dijitos en romanos le agradecería
Necesito saber como se hace un programa en java que calcule los primos relatinos de un Z, otro que saque el modulo se un Z.
como creo un algoritmo que descomponga un numero en numeros primos???????
si necesitan ayuda diganlo, soy estudiant de informatica
hola como creo un algoritmo que halle el numero de suerte de cada persona a partir de la fecha de nacimiento por ejm (29/01/2004)
2+9=11,0+1=1,2+0+0+4=6 y 11+1+6=18 y 1+8=9 entonces el numero de la suerte es 9
NECESITO UN CODIGO EN JAVA QUE CONVIERTA DE NUMEROS ENTEROS A NUMEROS ROMANOS
quiero sabes una funcion que aparte una fecha como:05/11/07 y devuelva :lunes,o5 de noviembre del 2007
consulten la api e java y no molesten tanto quieren que le hagan sus tareas tambien
BUENO LA VERDAD ES INETERESANTE PERO ME GUSTARIA SABER COMO DIVIDIR TRES NUMEROS DE UNA MATRIZ DE TRES DIMENSIONES Y SABER SU RESIDUO COMO ADICIONAL AL RESULTADO DE LA DIVISION ? ………..Richard_17_53@hotmail.com
hola me llamo jose y necesito un programa que cuente las cifras de un numero en java
kiero ahorita un programa en php k realize la suma de los 20 ptimeros numeros primos
ee no mames esta bien pinche mal este codigo pasenme uno pro bien compas xfa es urgente
necesito ayuda sobre el codigo correcto de numeros primos en java… en especifico calcular numeros primos del 1 al 2500, como puedo hacerle? brecaloto@hotmail.com
hola me podria ayudar con el programa en java que permita Leer 10 números y verificar si son números primos (divisibles solo para 1 y para sí mismos). Además, presentar la suma de los números y calcular el mayor.por fa es urgente ayudeme que no se nada de programaciòn avisame a mi mail. Gracias
hola
Hola me pueden ayudar a hacer un programa que dado un mínimo entero mayor a 0 determina si es primo o no.Gracias
hola alguien me puede ayudar con un programa en java que de 3 numeros me determine el minimo comun denominador
pa q xixa ponen una wea de titulo si despues no la van a cumpolir son terrile xatosssss
BUENO LA VERDAD ES INETERESANTE PERO ME GUSTARIA SABER COMO DIVIDIR TRES NUMEROS DE UNA MATRIZ DE TRES DIMENSIONES Y SABER SU RESIDUO COMO ADICIONAL AL RESULTADO DE LA DIVISION ?
COMO HAGO PARA DECIR UN SI UN NUMERO ES PRIMO O NO EN JAVA, ES DECIR, ¿CUÁL ES EL ALGORITMO?
COMO HAGO PARA DECIR UN SI UN NUMERO ES PRIMO O NO EN JAVA, ES DECIR, ¿CUÁL ES EL ALGORITMO?
Hola necesito urgente aprender java, excepciones en java.
hola vatos nesecito un programa .Dada una cantidad de numero entero mostrar su correspondiente en letra ,maximo tres dijitos
porfa si alguien se la pueda rifar,que haga el paro.lo espero va.
.
holo nesecito un codigo en cadenas para este problema en java
h
ho
hol
hola
hol
ho
h
a
al
alo
aloh
alo
al
a
un programa q diga cual es el mayor numero de un arreglo de x posiciones, sumarle sus digitos y veifiar ,si el numero es primo o no.
Me podrian ayudar un programa que verifique si dos numeros son primos entre si …………
hola necesito un programa que me de de salida el mayor y el menor de tres numeros usando funciones
alguien me manda el algoritmo en java para que imprima los primeros 50 numeros primos. caberman_666@hot por si me lo pueden mandar lo esperare intentando hacerlo de antemano gracias
La programacion en java es, facil. En ocasiones solo hay que buscar informacion. estudiar o preguntarle a un maestro. listo sabes programar
hola esto es re chebere gueno les dejo mi correito porfa anotenme solo los chicos de 11 años gueno baybay catico1205@hotmail.com y gueno hay se los dejo
hola porfis anotenme solo chicos y necesito sber las caracteristicas de lo numeros romanos gueno byabaybaa
aqui uno:
no necesita explicacion… es bueno
public boolean primo(int num)
{
boolean p;
int contador = 0;
int i = 1;
while(i <= num)
{
if (num % i == 0) contador++;
i++;
}
if (contador <= 2) p = true;
else p = false;
return p;
}
}
como hago un programa de numeros primos cn la teoria de euler-fermat
hola necesito el codigo para convertir un numero romano a binario
en l programa jcreator
necesito verificar un numero primo con lo 2 metodos de instancia
Que cree, la gente que hacemos tareas de programacion o que?
Muy bueno el codigo, sólo una optimizacion
… cuando el numero en efecto es primo, solo necesitas ir en contador como maximo hasta la raiz cuadrada, para saber los divisores, ejem. 9, como maximo su mayor divisor sera 3, en Java necesita una adpatacion (raiz cuadrada +1)
necesito un programa que dado como datos la fecha de nacimiento me de su numero de la suerte que le corresponde me urge!!!! gracias
sou una mmm no ponga para escolar los 50 numeros primos no sean malos
mierda cujudo inbecil puta tumama es unaputa mare
necesito un programa que me saque un factorial
hola necesito ayudaen algo sencillo q me realizen un algori tmo de un ejemplo de numeros primos y de numeros perfectos no importa q ejemplo sea ok seraq m ayudan porfa escribanme a mi correo porfa es este josef_vaz@hotmail.com
y en C#
hola necesito saber como realizar un programa en java en la que me devuelva como respuesta si es un numero amigo o no
holas
muy buena ayuda gracias gracias a mi me sirvio de mucho :=D
me gustaria saber como utilizar las funciones en programacion en C++.ADIOS
JUDY
me gustaria que pusieran los numeroas romanos pero los primos y que haya mas informacion acerca de esto, ciao!!!
