Java - Saber si cotenido de un array es primo o no

   
Vista:

Saber si cotenido de un array es primo o no

Publicado por Rafa (1 intervención) el 09/04/2009 20:03:15
Muy buenas foreros, ante todo gracias a los que me podais echar una mano, no logro resolver este problemilla:

Quiero hacer un metodo que pasandole un array (o tabla, como querais llamarle) me diga si es primo o no. Ya tengo hecho un metodo que funciona a la perfeccion pasandole un numero normal:

Código:

public void buscaPrimo(int n) {
if (n > 1) {
int cont = 0;
for (int i = 2; i < n; i++) {
if (n % i == 0) {
System.out.print(n + " NO ES PRIMO ");
cont = 1;
break;
}
}
if (cont == 0) {
System.out.print(n + " ES PRIMO ");
}
}
}

Y necesito tener un método parecido pero que pasandole un array con numeros me dijese si su conjunto es primo o no.

Alguna sugerencia??

Espero haberme explicado mas o menos bien

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Saber si cotenido de un array es primo o no

Publicado por cucu (14 intervenciones) el 10/04/2009 20:55:28
hola, ¿que te parece llamar a tu función para cada elemento del array?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Saber si cotenido de un array es primo o no

Publicado por KRLO (10 intervenciones) el 14/04/2009 19:23:22
package cl.foro.test;

import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.*;

public class Empl {
static Integer[] n;

public static void main(String[] oscar) {

Empl n = new Empl();
n.lista();
}

public void lista() {
int p = Integer.parseInt(JOptionPane
.showInputDialog("Catidad de Numeros"));
n = new Integer[p];
for (int i = 0; i < p ; i++) {

String num = JOptionPane.showInputDialog("NUMERO "+(i+1)+"°");
try{
n[i] = new Integer(num);
}catch (Exception e) {

JOptionPane.showMessageDialog(null,
"Valor Ingresado Incorrecto, Se Omitara "+ num,
"ERROR",
JOptionPane.ERROR_MESSAGE);
}
}

System.out.println("Imprimir Vector de Salida");
this.analisis(n);
}

private void analisis(Integer[] data){

StringBuffer stringBuffer = new StringBuffer();

for(int i = 0; i < data.length; i++){

Integer ini = (Integer) data[i];
if(esPrimo(ini.intValue())){
System.out.println("Numero "+ini.intValue()+ " es Primo");
stringBuffer.append("Numero "+ini.intValue()+ " es Primo ");
}else{
System.out.println("Numero "+ini.intValue()+ " NO es Primo");
stringBuffer.append("Numero "+ini.intValue()+ " NO es Primo ");
}
}

JOptionPane.showMessageDialog(null,
stringBuffer.toString(),
"INFORMACION",
JOptionPane.INFORMATION_MESSAGE);

}

public static boolean esPrimo(int num)
{
boolean p = false;

if (num < 4) p = true;
else
{
if (num % 2 == 0) p = false;
else
{
int contador = 0;
int i = 1;
int limite = (num - 1) / 2;
if (limite % 2 == 0) limite--;

while(i <= limite)
{
if (num % i == 0) contador++;
i += 2;
if (contador == 2) i = limite + 1;
}

if (contador == 1) p = true;
}
}

return p;
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar