Pages

lunes, 28 de enero de 2013

Determinar si un número es primo Codigo Fuente en Java

Problema
Diseñar un algoritmo que me permita ingresar cualquier número y determinar si el número ingresado es primo.

Solución
  • Entrada: 19
  • Salida:   Si es número primo
Codigo Fuente en Java
import java.util.Scanner;
public class Main {
     public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
         int a=0,i,n;
         System.out.println("Ingrese numero");
         n=sc.nextInt();
         for(i=1;i<(n+1);i++){
         if(n%i==0){
             a++;
            }
         }
         if(a!=2){
              System.out.println("No es Primo");
            }else{
                System.out.println("Si es Primo");
         }
     }
}

34 comentarios:

Anónimo dijo...

pero si la def de numero primo es un numero mayor que 1 debería informar en el programa que el numero a ingresar debe ser mayor que 1

francisco hinojosa dijo...

disculpe seria posible que pusiera la explicacion de lo que el codigo

Anónimo dijo...

muchas gracias bro , me ayudaste bastante

david Jofre dijo...

super men me salvaste con un ejercicio para una prueba buen aporte

Alvaro Barber dijo...

Antes de un examen de programacion , leer esto es gloria!!
mil gracias!

Arnulfo Romero dijo...

para el que pidió la explicación del código es...

import java.util.Scanner; // libreria para leer datos
public class Main { // inicia clase principal
public static void main(String[] args) { // inicia metodo principal
Scanner sc = new Scanner(System.in); // creamos un objeto de tipo //scanner para lectura de datos por teclado
int a=0,i,n; // declaramos 3 variables: a para el resultado, i para contador //de for y n para la lo que el usuario introducirá
System.out.println("Ingrese numero"); // pedimos que el usuario //introduzcaun valor entero
n=sc.nextInt(); // lo almacenamos en n
for(i=1;i<(n+1);i++){ // creamos un for para una iteracicon de 1 hasta n
if(n%i==0){ // entramos al for y si el remanente de n entre i (posicion) es // //menor a n+1
a++; // a incrementa 1
}
}
if(a!=2){ // si a es diferente a 2 es primo de lo contrario NO
System.out.println("No es Primo");
}else{
System.out.println("Si es Primo");
}
}
}

Anónimo dijo...

nese4sito la corrida

yofre mosquera rengifo dijo...

gracias may me sirvio

yofre mosquera rengifo dijo...

me gustaria que me dieras unos tutoriales porque soy principiante

yofre mosquera rengifo dijo...

como puedo desarrollar este proyecto me explicas


indique la edad de una persona con la fechas del sistema y con la fecha de nacimiento

yofre mosquera rengifo dijo...

si alguna informacion me la envias ha este correo yomospe@gmail.com te agradeceria

Anónimo dijo...

necesito el codigo de traductor morse seria:
español/ frases/palabras
a morse/ frases/palabras
clases:
frase " la casa roja " esta que se pueda separ y enviar por decir casa a traductor morse.
se puede utilizar arreglos, listas, hashmap.

Por favor necesito ayuda para esto.

wilmer hernan pedraza becerra dijo...

una pregunta porque las tres variables?

Anónimo dijo...

cual seria el algoritmo para hallar los divisores primos

Anónimo dijo...

gracias

Rakny Arok dijo...

Esta bien, pero si introduces el número 1, el programa dice que no es primo, cuando 1 es primo.

Anónimo dijo...

El numero 1 no es primo

Anónimo dijo...

que lo muestre en un text field en un rango definido por el usuario

Giancarlos nuñez gomez dijo...

buen aporte un numero es primo cuando es divisible por 1 y el mismo numero

Anónimo dijo...

como imprimo datos repetidos mas de una veces y también los datos que se repita una vez ejemplo 224355666 y el resultado es 24356

Anónimo dijo...

como puedo imprimir datos repetidos mas de una veces y no repetido y q al final me muestre una sola vez el numero ingresado ejemplo 223335554 6 y que me imprima 23546

Anónimo dijo...

Muchisímas Gracias!! Me sirvio bastante
Te vas a ir al cielo! Jeje :)

Jared Castro Bravo dijo...

A decir verdad no son necesarias las variables booleanas. Podriamos usar solamente una iteracion while que funcione mientras el numero no sea divisible entre el contador. Si al final el contador llega a ser igual al numero es porque el numero jamás fue divisible, es decir, es primo:

import java.util.Scanner;
public class primo{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("Introduce numero primo: ");
int i=2, n=in.nextInt();
while(n%i!=0) i++; // La unica instruccion es que "i" se incremente en 1
if (i==n) System.out.println("Primo");
else System.out.println("NO Primo");
}}

El codigo quedaria reducido a menos de 240 bytes...

Anónimo dijo...

//programa que determina si un numero es primo
for(i=0;i<vec1.length;i++){
boolean sw;
sw=true;
int k = 2;
while(k<=vec1[i]/2&&(sw== true))
{
if (vec1[i]%k==0)
{
sw=false;
}
else
{
k=k+1;
}
}



if(sw==true)
{

JOptionPane.showMessageDialog(null,"Los numeros primos son: "+vec1[i]);
}

Anónimo dijo...

El algoritmo del tal Jared...mucho reducir el tamaño del código...pero si introduces un 1 el programa se queda en bucle infinito ^^.

Si quieres optimizar comprueba los divisores hasta N/2, que es el máximo divisor que puede tener un número (a parte de él mismo, pero eso nos da igual en el algoritmo) y te ahorras la mitad de ciclos en el bucle.

Para ser buen programador hay que saber matemáticas...

diego restrepo dijo...

Realice un algoritmo donde se pueda ingresar n cantidad de números, para cada número ingresado deberá tener en cuenta que si es primo lo debe contar y acumular en una variable, si no lo es deberá identificar si es par o impar, si es par debe contarlo y acumularlo en otras variables y si es impar deberá contarlo y acumularlo en otras variables. Al final deberá mostrar la cantidad de números primos ingresados, pares e impare y también el total de sumas de números primos, pares e impares.


alguien mee puede ayudar con este ejercicio?

Muchas gracias!!

Anónimo dijo...

Hola!! necesito que me ayuden con un programa en donde al ingresar 10 numeros me imprima el promedio de pares, la cantidad de primos,cantidad de numeros mayores a 50 y cantidad de numeros entre 10 y 50....porfisss es urgente!!

Nikkel Adjakas dijo...

chicos, tienen todos los codigos por separado en la web, lo unico que deben hacer es juntarlos, creen clases, llamen a las clases, piensen, asi quieren ser programadores?
ah y no hagan como el de este blog y documenten su codigo...

Katherine Arango dijo...

esta con el for o con el while

Katherine Arango dijo...

esta con el for o con el while

Nathan Rodriguez dijo...

A utilização dos números primos na criptografia faz deles um tópico de estudo muito ativo entre os matemáticos, pois a mesma é essencial na sociedade moderna.

Bom artigo! Abraços.

Números Primos em Java

Ruth Moreira dijo...
Este comentario ha sido eliminado por el autor.
Ruth Moreira dijo...

Numero Primo Impar: Realizarlo en Java

Verificar si el numero ingresado es impar si es impar , verificar si es primo y mostrar un mensaje por pantalla "Primo Impar" caso contrario "Numero Impar"

Si el numero ingresado es par se le aumentara 1 para que sea impar, cuando se haga el aumento se verificara si es primo y mostrar por pantalla "Primo Impar" caso contrario "Numero Impar"
Ayudenme es urgente.
Se les agradece de antemano.

Anónimo dijo...

y si hablamos de metodo recursivo? como seria?

Publicar un comentario en la entrada