elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Servidor TeamSpeak 3 crea canales gratuitos


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  numeros primos y factoriales en java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: numeros primos y factoriales en java  (Leído 9,941 veces)
leliCabello

Desconectado Desconectado

Mensajes: 158


Ver Perfil
numeros primos y factoriales en java
« en: 5 Noviembre 2009, 02:13 »

porfavor ayudenme....en calcular si un numero es primo o no, y tambien su factorial..estuve avanzandolo pero no me sale como deberia :huh:

Código:
package prueba;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;

import javax.swing.*;

public class numeros extends JFrame implements  ActionListener {
public numeros(){
super();
}
String a;
    int numero ;
JPanel panel= new JPanel();
JLabel label1 = new JLabel("Ingresar número ");
JTextField texto = new JTextField(10);
JButton boton = new JButton("Calcular Primos");
JButton boton2 = new JButton("Calcular Factorial");

public void panel(){
panel.add(label1);
panel.add(texto);
panel.add(boton);
panel.add(boton2);
add(panel);
super.setTitle("NUMEROS");
super.setVisible(true);
super.setSize(300, 140);
//panel.setBounds(0, 0, -1, 1);
boton.addActionListener(this);
boton2.addActionListener(this);

a=texto.getText();
numero=Integer.parseInt(a);
}

public static void main(String[] args) {
numeros obj = new numeros ();
obj.panel();

}

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

public static int factorialrec(int x)
{

    int aux;
    aux=1;
    if (x==0)aux=1;
    else aux=aux*factorialrec(x-1);
    return aux;

}
@Override
public void actionPerformed(ActionEvent e) {
if( e.getSource().equals(boton) ){

JOptionPane.showMessageDialog(null, esPrimo(0));}

   
if( e.getSource().equals(boton2) ){

JOptionPane.showMessageDialog(null, factorialrec(0));}
}

}


En línea

Leyer
Moderador
***
Desconectado Desconectado

Mensajes: 782


leyer@elhacker.net


Ver Perfil WWW
Re: numeros primos y factoriales en java
« Respuesta #1 en: 5 Noviembre 2009, 02:37 »

no veo errores en tus metodos que te falta completar el listerner?


En línea

leliCabello

Desconectado Desconectado

Mensajes: 158


Ver Perfil
Re: numeros primos y factoriales en java
« Respuesta #2 en: 5 Noviembre 2009, 03:21 »

no el listener no es el proble....el problema es que cuando presiono CALCULAR PRIMOS A CUALKIER NUMERO QUE SEA SALE UN RESULTADO DE FALSE Y CUANDO PRESIONO CALCULAR FACTORIAL EL UNICO RESULTADO QUE SALE PARA CUALKIER NUMERO ES 1  :-(...AQUI PUEDES VER LAS IMAGENES
http://img97.imageshack.us/img97/6775/sinttulo1up.jpg
En línea

Leyer
Moderador
***
Desconectado Desconectado

Mensajes: 782


leyer@elhacker.net


Ver Perfil WWW
Re: numeros primos y factoriales en java
« Respuesta #3 en: 5 Noviembre 2009, 04:51 »

bueno fijate lo que haces OptionPane.showMessageDialog(null, esPrimo(0));}

es ovbio que te lanzara false ya que no estas tomando el texto del JtextFiel
tiene que ser asi deberias saber eso como programador no crees.

JOptionPane.showMessageDialog(null, esPrimo(Integer.parseInt(texto.getText())));}
En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.989


Anonymous & Paranoid


Ver Perfil WWW
Re: numeros primos y factoriales en java
« Respuesta #4 en: 5 Noviembre 2009, 05:26 »

Factorial con BigInteger tanto el método recursivo como el Iterativo.

Código
  1. import java.math.BigInteger;
  2.  
  3. public class Factorial {
  4.  
  5. public static BigInteger uno = new BigInteger("1");
  6.  
  7. public static BigInteger recursivo(BigInteger n) {
  8. if(!n.toString().equals("0"))
  9. return n.multiply(recursivo(n.subtract(uno)));
  10. else
  11. return uno;
  12.  
  13. }
  14.  
  15. public static BigInteger iterativo(long n) {
  16. BigInteger factorial = uno;
  17. long i = 2;
  18. while(i < n){
  19. factorial = factorial.multiply(new BigInteger(""+i));
  20. i++;
  21. }
  22. return factorial;
  23. }
  24.  
  25. public static void main(String args[]) {
  26. long i = 1;
  27. while(i < 100000) {
  28. System.out.println(i+ ":\t"+iterativo(i));
  29. i++;
  30. }
  31.  
  32. }
  33.  
  34. }
  35.  
  36.  


Saludos
En línea

leliCabello

Desconectado Desconectado

Mensajes: 158


Ver Perfil
Re: numeros primos y factoriales en java
« Respuesta #5 en: 5 Noviembre 2009, 05:28 »

 :-\ ...lo puse tal como me dijiste JOptionPane.showMessageDialog(null, esPrimo(Integer.parseInt(texto.getText())));} .....pero aun sale false
En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.989


Anonymous & Paranoid


Ver Perfil WWW
Re: numeros primos y factoriales en java
« Respuesta #6 en: 5 Noviembre 2009, 05:33 »

Es obvio que te va a salir false ya que el numero no es primo.

Tu funcion

public static boolean esPrimo


Y al pasar ese dato a cadena, automaticamente tiene uno de 2 valores

true, false

Lo que debes de hacer es lo siguiente evaluar el resultado de la exprecion

if(esPrimo(.....))
 mensaje("El numero " +tuVariable+" es Primo");
else
 bla bla bla

Saludos



En línea

leliCabello

Desconectado Desconectado

Mensajes: 158


Ver Perfil
Re: numeros primos y factoriales en java
« Respuesta #7 en: 5 Noviembre 2009, 22:33 »

 ;) graciass...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Multiplica 2 numeros con java
Java
Tuplado 4 1,656 Último mensaje 13 Octubre 2012, 21:27
por Tuplado
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines