Páginas

NIMADRES

Calcular Números Primos en Java

Un número primo es un número entero mayor que cero, que tiene exactamente dos divisores positivos. También podemos definirlo como aquel número entero positivo que no puede expresarse como producto de dos números enteros positivos más pequeños que él, o bien, como producto de dos enteros positivos de más de una forma. Conviene observar que con cualquiera de las dos definiciones el 1 queda excluido del conjunto de los números primos.



El término primo no significa que sean parientes de alguien. Deriva del latín "primus" que significa primero (protos en griego). El teorema fundamental de la aritmética afirma que todo número entero se expresa de forma única como producto de números primos. Por eso se les considera los "primeros", porque a partir de ellos obtenemos todos los demás números enteros. (El 15 se obtiene multiplicando los primos 3 y 5)
    Los 25 primeros números primos son 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 y 97, que son todos los primos menores que 100.

Esta aplicación grafía hecha en java representa una operación en la cual el usuario añade un número para saber si es Primo, la ventana abre un cuadro de dialogo con la respuesta del número calculado.






import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class NumerosPrimos extends JFrame implements ActionListener{
    private String cadena;
    private JButton botonResultado;
    private JTextField texto;
    private JPanel panel = new JPanel();
    
    public NumerosPrimos(){
        setBounds(100,100,300,150);
        setTitle("NUMEROS PRIMOS");
        setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setVisible(true);
        botonResultado = new JButton("Calcular");
        texto = new JTextField("");
        panel.setLayout(new FlowLayout());
        panel.add(botonResultado);
        add(texto,java.awt.BorderLayout.NORTH);
        add(panel,java.awt.BorderLayout.CENTER);
        botonResultado.addActionListener(this);
    }
    @Override
    public void actionPerformed(ActionEvent e){
        if(e.getSource().equals(botonResultado)){
            cadena = texto.getText();
            int numero = Integer.parseInt(cadena);
            int residuo;
            int contador = 0;
            for(int i = 1; i <= numero;++i){
                residuo = numero % i;
                if(residuo == 0)
                    contador++;
                if(contador > 2)
                    break;
            }
            if(contador == 2){                
                JOptionPane.showMessageDialog(this
                ,"El numero es primo"
                ,"Solucion"
                ,JOptionPane.INFORMATION_MESSAGE);
            }
            else{
                JOptionPane.showMessageDialog(this
                ,"El numero es par"
                ,"Solucion"
                ,JOptionPane.INFORMATION_MESSAGE);
            }
        }
    }
}
En el código anterior es el cuerpo del programa, en el cual se genera la ventana, botones, texto y el calculo. en el siguiente código es el Main que corre el programa.

import javax.swing.*;
public class Main{
    public static void main(String args[]){
        NumerosPrimos numeros =  new NumerosPrimos();
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception e) {
        }
    }
}