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");
         }
     }
}

51 comentarios:

  1. 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

    ResponderEliminar
  2. disculpe seria posible que pusiera la explicacion de lo que el codigo

    ResponderEliminar
  3. muchas gracias bro , me ayudaste bastante

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

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

    ResponderEliminar
  6. 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");
    }
    }
    }

    ResponderEliminar
    Respuestas
    1. Como le harías para que te devuelva el número que ingresaste en primos,de mayor a menor?

      Eliminar
  7. nese4sito la corrida

    ResponderEliminar
  8. me gustaria que me dieras unos tutoriales porque soy principiante

    ResponderEliminar
  9. como puedo desarrollar este proyecto me explicas


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

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

    ResponderEliminar
  11. 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.

    ResponderEliminar
  12. una pregunta porque las tres variables?

    ResponderEliminar
  13. cual seria el algoritmo para hallar los divisores primos

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

    ResponderEliminar
  15. El numero 1 no es primo

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

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

    ResponderEliminar
  18. 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

    ResponderEliminar
  19. 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

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

    ResponderEliminar
  21. 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...

    ResponderEliminar
  22. //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]);
    }

    ResponderEliminar
  23. 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...

    ResponderEliminar
  24. 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!!

    ResponderEliminar
  25. 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!!

    ResponderEliminar
  26. 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...

    ResponderEliminar
  27. 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

    ResponderEliminar
  28. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  29. 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.

    ResponderEliminar
  30. y si hablamos de metodo recursivo? como seria?

    ResponderEliminar
  31. por alguna razon tu codigo no fucniona en poo
    me sale "if statement is redundant"
    no se por que...

    ResponderEliminar
  32. Realice un programa que pida la cantidad de números primeros primos ingresados por el usuario AYUDA

    ResponderEliminar
  33. ayudenme
    con estehacer una clase en java que permita detectar un numero introducido por teclado que es
    a}positivo
    b)negativo
    c)multiplo de 5
    y mayor o menor que otro numero introducido por teclado

    ResponderEliminar
  34. Arnulfo tu codigo tiene falla no acepta el numero 1 como primo, prueben algo como esto

    import java.util.*; // el import lo utilisamos para importar lo que es las utilidades de escanner y demas



    public class NumeroPrimo {



    /**

    * @param args

    */

    public static void main(String[] args) {

    // TODO Auto-generated method stub



    int num; //declaramos nuestras variables en este caso enteras

    int divisor=2;

    boolean bandera=false; // una boleana para usa bandera



    Scanner in = new Scanner (System.in) ; //se declarra el escaner en ""in"" entrada



    System.out.println("ingrese el numero: " ) ; // la impresion

    num=in.nextInt(); // la lectura del numero capturado



    while(!bandera && divisor<num) //ponemos el while con su condicion en este caso si bandera

    {

    if (num%divisor==0) // un if en el cual se pregunta si el residuo de la divicion es o

    bandera=true; // si lo es no es primo osea que se sale

    else

    divisor++; //igual si el divisor llego al numero q se capturo este sera primo

    }



    if (bandera) //se pregunta afuera y listo

    System.out.println("el numero no es primo" ) ;

    else

    System.out.println("el numero si es primo" ) ;

    }

    }

    ResponderEliminar
  35. /* 51. Dado un vector de “N” elementos cargarle números aleatoriamente,
    * determinar cuál de los números primos es mayor y su posición. */
    package sweetie_bot;
    import java.util.Scanner;
    public class Ejercicio_51 {
    public static void main (String [] args){
    Scanner Leer = new Scanner (System.in);
    int i = 2; int mayor = 0; int ac = 0;
    System.out.println("Ingrese limite para el vector: ");
    int lim = Leer.nextInt();
    System.out.println("Ingrese Elemento: ");
    for (int k=1; k<=lim; k++)
    {
    int nro = Leer.nextInt();
    if (nro % i != 0) i++;
    {
    if(i == nro)
    {
    if(nro > mayor)
    {
    mayor = nro;
    ac = k;
    }
    }
    }
    }
    System.out.println("\nEl mayor primo es: " + mayor);
    System.out.println("Su posición es: " + ac);
    }
    }

    ResponderEliminar
  36. tambien pudiste poner for(i=1;i<=n;i++); no era necesario el "i<(n+1)".

    ResponderEliminar
  37. ayúdenme con lo siguiente:
    escribir un algoritmo que determine cuantos dígitos pares y cuantos impares tiene un numero de "n" dígitos

    ResponderEliminar
  38. Desarrolle un algoritmo que convierta un numero decimal primo no negativo de
    mínimo dos dígitos a Binario.

    alguien podria ayudarme? gracias

    ResponderEliminar
  39. Hola necesito ayuda en programación de bucles (con el uso de for) Determine cuantos números primos existe en los primeros N números enteros positivos.
    que requiere cuando el usuario ingrese un numero, luego el sistema devuelve la cantidad de números primos, por ejemplo si ingresa 7 hay 4 numeros primos 1,3,5,7
    Ejm:
    Numero:7
    Cantidad:4

    ResponderEliminar
  40. un programa q me pida un numero por teclado y me diga cuantos primos hay de 0 a ese numero

    ResponderEliminar
  41. un programa q me pida un numero por teclado y me diga cuantos primos hay de 0 a ese numero

    ResponderEliminar
  42. Muchísimas Gracias!
    Código sencillo y claro. Hay gente que en problemas como este (que son problemas sencillos...) ponen cada código que ya te tira 'pa trás'.

    Gracias por compartir!

    ResponderEliminar