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

43 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?

Anónimo dijo...

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

JAVIER ALEXIS RAMIREZ QUINTERO dijo...

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

donovan david doria lerech dijo...

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

Anónimo dijo...

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

}

}

Anónimo dijo...

/* 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);
}
}

Anónimo dijo...

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

juan carlos th dijo...

el pomedio d n alumnos

juan carlos th dijo...

ayúdenme por favor

Anónimo dijo...

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

Publicar un comentario