/* lucaslehmerapplet implements the Lucas-Lehmer test of primality for Mersenne primes M. Gallant 01/99 */ import java.awt.*; import java.applet.*; import java.io.*; import java.util.*; import java.math.BigInteger; public class lucaslehmerapplet extends Applet { public TextArea textArea = new TextArea (15, 50); public TextField tf1 = new TextField("3", 5) ; public TextField tf2 = new TextField("101", 5) ; Button testprimes = new Button("Test for Primes") ; Button clearbutton = new Button("Clear Text") ; Button printvalue = new Button("Print") ; BigInteger zero=new BigInteger("0") ; BigInteger one =new BigInteger("1") ; BigInteger two =new BigInteger("2") ; public void init () { testprimes.setBackground(Color.red) ; clearbutton.setBackground(Color.white) ; add (clearbutton) ; add (tf1) ; add (tf2) ; add (testprimes) ; add (printvalue) ; add (textArea); } public boolean action(Event evt, Object arg) { //intercept AWT action. if (evt.target == clearbutton) { textArea.setText("") ; return true ; } else if (evt.target == testprimes) { getPrimes() ; return true; } // end if else if (evt.target == printvalue) { int p = Integer.parseInt(tf2.getText()) ; textArea.append(" 2^"+p+"-1 = " + two.pow(p).subtract(one) + "\n") ; return true; } else return false; } // end action handler private void getPrimes() { textArea.setText("") ; //BigInteger zero=new BigInteger("0") ; //BigInteger one =new BigInteger("1") ; //BigInteger two =new BigInteger("2") ; int p1 = Integer.parseInt(tf1.getText()) ; // get command-line exponent int p2 = Integer.parseInt(tf2.getText()) ; if(p1%2 == 0) { textArea.append("--- Exponents must be odd ----") ; return ; } if(p2