PKQ2META-INF/MANIFEST.MF-ͱ @ =w=Z JM%bsr?G*3ǑI!W&)zI-G2˿ U?m͓j.ꬎБh/2K*:]D?PKmanuPKQ2WindowTestingFrame.java= 4){ x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); p.println("It took " + String1 + "." + String2 + " seconds to complete."); } else p.println("It took less then a second to complete."); p.close(); } catch (Exception e2){ System.err.println ("Error writing to file"); MyTextArea.append("I'm sorry but somthing has happend to keep\n"+ "me from making this file PrimeNumbers.txt\n"); MyTextArea.append(e2 + "\n"); } MyTextArea.append("File saved as PrimeSummary.txt\n"); } }); /* *** */ MyButton2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //implament the Save all button here FileOutputStream out; // declare a file output object PrintStream p; try{ out = new FileOutputStream("PrimeNumbers.txt"); p = new PrintStream( out ); p.println("There are " + TotalCount + " total prime numbers"); p.println("between 1 and " + YourMaxNumber); p.println("The projected number of primes " + ArraySize); p.println("The difference is " + (ArraySize - TotalCount)); String TotalTime = new String(); TotalTime = "" + TimeTaken; int len = TotalTime.length(); char FormatedNumber[] = TotalTime.toCharArray(); if (len >= 4){ x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); p.println("It took " + String1 + "." + String2 + " seconds to complete."); } else p.println("It took less then a second to complete."); p.println(""); p.println("The list of primes is as follows:"); x = 0; while(x < TotalCount){ p.println (ResizingArray.getNumber(x)); x++; } //TotalCount = 0; p.close(); }catch (Exception e2){ System.err.println ("Error writing to file"); MyTextArea.append("I'm sorry but somthing has happend to keep\n"+ "me from making this file PrimeNumbers.txt\n"); MyTextArea.append(e2 + "\n"); } MyTextArea.append("File saved as PrimeNumbers.txt\n"); } }); /* *** */ MyButton3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //implament the Calculate button here MyTextArea.setText(null); try { YourMaxNumber = Integer.parseInt(MyTextField.getText().trim()); if ((YourMaxNumber >= 5) & (YourMaxNumber <= 2147483647)){ Time = System.currentTimeMillis(); ArraySize = (int) (YourMaxNumber / (Math.log(YourMaxNumber) - 1.08366)); try{ ResizingArray.clearArray(); ResizingArray.resize(ArraySize); } catch(java.lang.OutOfMemoryError e3){ MyTextArea.append("Hi, You are seeing this because you got the error:\n"); MyTextArea.append(e3 + "\n"); MyTextArea.append("which means you need to close any programs you can\n"); MyTextArea.append("and/or just use a smaller number.\n"); //I was starteled when I got this error for my first time //so it can be a issue with large arrays so we handel it here. } MyTextArea.append("Calculating... "); CalculatePrimes(); //after we check to see if the user entered a MyTextArea.append("Done!\n");//valed number, we calculate all the prime numbers MyTextArea.append("\n"); MyTextArea.append("There are " + TotalCount + " total prime numbers\n"); MyTextArea.append("between 1 and " + YourMaxNumber + "\n"); MyTextArea.append("The projected number of primes " + ArraySize + "\n"); MyTextArea.append("The difference is " + (ArraySize - TotalCount) + "\n"); String TotalTime = new String(); TotalTime = "" + TimeTaken; int len = TotalTime.length(); char FormatedNumber[] = TotalTime.toCharArray(); if (len >= 4){ x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); MyTextArea.append("It took " + String1 + "." + String2 + " seconds to complete.\n"); } else MyTextArea.append("It took less then a second.\n"); } else if (YourMaxNumber < 5){ MyTextArea.append("Your number must be grater then or equal to 5.\n"); } else System.exit(0); // exit the program if we get a error that is not suposed to be there. } catch (NumberFormatException e2){ MyTextArea.append(MyTextField.getText().trim()+" is not a valid number, try again.\n"); } } }); /* *** */ MyTextField.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //implament the text field here, this happens when the user presses 'Enter' MyTextArea.setText(null); try { YourMaxNumber = Integer.parseInt(MyTextField.getText().trim()); if ((YourMaxNumber >= 5) & (YourMaxNumber <= 2147483647)){ Time = System.currentTimeMillis(); ArraySize = (int) (YourMaxNumber / (Math.log(YourMaxNumber) - 1.08366)); try{ ResizingArray.clearArray(); ResizingArray.resize(ArraySize); } catch(java.lang.OutOfMemoryError e3){ MyTextArea.append("Hi, You are seeing this because you got the error:\n"); MyTextArea.append(e3 + "\n"); MyTextArea.append("which means you need to close any programs you can\n"); MyTextArea.append("and/or just use a smaller number.\n"); //I was starteled when I got this error for my first time //so it can be a issue with large arrays, we handel it here. } MyTextArea.append("Calculating... "); CalculatePrimes(); //after we check to see if the user entered a MyTextArea.append("Done!\n");//valed number, we calculate all the prime numbers MyTextArea.append("\n"); MyTextArea.append("There are " + TotalCount + " total prime numbers\n"); MyTextArea.append("between 1 and " + YourMaxNumber + "\n"); MyTextArea.append("The projected number of primes " + ArraySize + "\n"); MyTextArea.append("The difference is " + (ArraySize - TotalCount) + "\n"); String TotalTime = new String(); TotalTime = "" + TimeTaken; int len = TotalTime.length(); char FormatedNumber[] = TotalTime.toCharArray(); if (len >= 4){ x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); MyTextArea.append("It took " + String1 + "." + String2 + " seconds to complete.\n"); } else MyTextArea.append("It took less then a second.\n"); } else if (YourMaxNumber < 5){ MyTextArea.append("Your number must be grater then or equal to 5.\n"); } else System.exit(0); // exit the program if we get a error that is not suposed to be there. } catch (NumberFormatException e2){ MyTextArea.append(MyTextField.getText().trim()+" is not a valid number, try again.\n"); } } }); /* *** */ //Right.setSize(Left.getHeight(),220); Box Top = Box.createHorizontalBox(); Top.add(Left); Top.add(Right); Container TheContent = getContentPane(); TheContent.setLayout(new BorderLayout()); TheContent.add(Top, BorderLayout.CENTER); /* *** */ enableEvents(AWTEvent.WINDOW_EVENT_MASK); } protected void processWindowEvent(WindowEvent e){ if (e.getID() == WindowEvent.WINDOW_CLOSING){ dispose(); System.exit(0); // haldel the close box button in the top right corner of } // the window } public void CalculatePrimes(){ TotalCount = 0; byte Counter = 0; ResizingArray.add(2); ResizingArray.add(3); EachNumber = 5; TotalCount = 2; while (EachNumber <= YourMaxNumber){ SquareRoot = (int) Math.round(Math.sqrt(EachNumber)); x = 1; while ((Prime = ResizingArray.getNumber(x)) <= SquareRoot){ x++; if (EachNumber % Prime == 0){ Counter++; // end loop early if we finde a number break; // that is not prime so we dont waste time. } } if (Counter == 0){ ResizingArray.add(EachNumber); TotalCount++; // Yay, we found a prime number. } Counter = 0; EachNumber = EachNumber + 2; } TimeTaken = System.currentTimeMillis() - Time; // see how long it took to calculate } } PKϡ<<PKQ2WindowTestingFrame$1.class%.(     !"#val$MyTextAreaLjavax/swing/JTextArea; Syntheticthis$0LWindowTestingFrame;.(LWindowTestingFrame;Ljavax/swing/JTextArea;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLWindowTestingFrame$1;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileWindowTestingFrame.java $  % &'WindowTestingFrame$1java/lang/Objectjava/awt/event/ActionListener()Vjavax/swing/JTextAreasetText(Ljava/lang/String;)V      M**+*,G   A * HI   PKw*%PKQ2WindowTestingFrame$2.classX . .R -S -TUV WX YZ R[ \ ]^ _` a bc ]de ]fgh R; ]i j k l ]m nopqr st uvwx yz {|}~val$MyTextAreaLjavax/swing/JTextArea; Syntheticthis$0LWindowTestingFrame;.(LWindowTestingFrame;Ljavax/swing/JTextArea;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLWindowTestingFrame$2;actionPerformed(Ljava/awt/event/ActionEvent;)VString1Ljava/lang/String;String2 TotalTimelenIFormatedNumber[CoutLjava/io/FileOutputStream;pLjava/io/PrintStream;e2Ljava/lang/Exception;eLjava/awt/event/ActionEvent; SourceFileWindowTestingFrame.java 5 34 01java/io/FileOutputStreamPrimeSummary.txt 5java/io/PrintStream 5java/lang/StringBuffer There are  E  total prime numbers between 1 and EThe projected number of primes EThe difference is java/lang/String E It took . seconds to complete.'It took less then a second to complete. java/lang/Exception KError writing to fileUI'm sorry but somthing has happend to keep me from making this file PrimeNumbers.txt   File saved as PrimeSummary.txt WindowTestingFrame$2java/lang/Objectjava/awt/event/ActionListener()V(Ljava/lang/String;)V(Ljava/io/OutputStream;)Vappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;WindowTestingFrame TotalCount(I)Ljava/lang/StringBuffer;toString()Ljava/lang/String;println YourMaxNumber ArraySize TimeTakenJ(J)Ljava/lang/StringBuffer;length()I toCharArray()[Cx copyValueOf([CII)Ljava/lang/String;closejava/lang/Systemerrjavax/swing/JTextArea,(Ljava/lang/Object;)Ljava/lang/StringBuffer; -./012342567M**+*,8O9 :=3401>?7I aYMY,N- Y  *  - Y  *- Y  *- Y  ** dY: Y  *:6:S*d*:d:- Y   !  "  -#-$1:&'*()* Y *+ )*,)&)%8bV WX5YRZo[]^_`bcdefh"i&o)j+k3l<nWp`q9f 3@A'BACAgDE`FG HIJK+,LMa:=aNOPQ< -PK]#] X PKQ2WindowTestingFrame$3.classH . 2V 1W 1XYZ [\ ]^ V_ ` ab cd e fg ahi ajkl V? am n o p aq rstuvw ax yz { |} ~ val$MyTextAreaLjavax/swing/JTextArea; Syntheticthis$0LWindowTestingFrame;.(LWindowTestingFrame;Ljavax/swing/JTextArea;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLWindowTestingFrame$3;actionPerformed(Ljava/awt/event/ActionEvent;)VString1Ljava/lang/String;String2 TotalTimelenIFormatedNumber[CoutLjava/io/FileOutputStream;pLjava/io/PrintStream;e2Ljava/lang/Exception;eLjava/awt/event/ActionEvent; SourceFileWindowTestingFrame.java 9 78 45java/io/FileOutputStreamPrimeNumbers.txt 9java/io/PrintStream 9java/lang/StringBuffer There are  I  total prime numbers between 1 and IThe projected number of primes IThe difference is java/lang/String I It took . seconds to complete.'It took less then a second to complete.!The list of primes is as follows:  java/lang/Exception OError writing to fileUI'm sorry but somthing has happend to keep me from making this file PrimeNumbers.txt   File saved as PrimeNumbers.txt WindowTestingFrame$3java/lang/Objectjava/awt/event/ActionListener()V(Ljava/lang/String;)V(Ljava/io/OutputStream;)Vappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;WindowTestingFrame TotalCount(I)Ljava/lang/StringBuffer;toString()Ljava/lang/String;println YourMaxNumber ArraySize TimeTakenJ(J)Ljava/lang/StringBuffer;length()I toCharArray()[Cx copyValueOf([CII)Ljava/lang/String; ResizingArray LSmartArray; SmartArray getNumber(I)I(I)Vclosejava/lang/Systemerrjavax/swing/JTextArea,(Ljava/lang/Object;)Ljava/lang/StringBuffer; 1234567869:;M**+*,<w= >A7845BC; YMY,N- Y  *  - Y  *- Y  *- Y  ** dY: Y  *:6:S*d*:d:- Y   !  "  -#--$*** (-*%*&'*Y`-(1:*+*,-* Y ./ -*0-ps)<z} ~5Ro"(.6G\lpsu}=f 3DE'FEGEHIJK iLM`NOu,PQ>ARSTU@ 1PKe{M H PKQ2WindowTestingFrame$4.classe . ;_ :` :a :b cd ef )g hi jk lm jn op?V? jq jr st suvw cxy _ z{ | }~ j j  )_J j  ) ) j ) lval$MyTextAreaLjavax/swing/JTextArea; Syntheticval$MyTextFieldLjavax/swing/JTextField;this$0LWindowTestingFrame;F(LWindowTestingFrame;Ljavax/swing/JTextArea;Ljavax/swing/JTextField;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLWindowTestingFrame$4;actionPerformed(Ljava/awt/event/ActionEvent;)Ve3Ljava/lang/OutOfMemoryError;String1Ljava/lang/String;String2 TotalTimelenIFormatedNumber[Ce2!Ljava/lang/NumberFormatException;eLjava/awt/event/ActionEvent; SourceFileWindowTestingFrame.java D BC => @A    V  V  java/lang/OutOfMemoryError3Hi, You are seeing this because you got the error: java/lang/StringBuffer  3which means you need to close any programs you can "and/or just use a smaller number. Calculating... Done!  There are V  total prime numbers between 1 and The projected number of primes The difference is java/lang/String V It took . seconds to complete. It took less then a second. /Your number must be grater then or equal to 5. java/lang/NumberFormatException# is not a valid number, try again. WindowTestingFrame$4java/lang/Objectjava/awt/event/ActionListener()Vjavax/swing/JTextAreasetText(Ljava/lang/String;)Vjavax/swing/JTextFieldgetText()Ljava/lang/String;trimjava/lang/IntegerparseInt(Ljava/lang/String;)IWindowTestingFrame YourMaxNumberjava/lang/SystemcurrentTimeMillis()JTimeJjava/lang/Mathlog(D)D ArraySize ResizingArray LSmartArray; SmartArray clearArrayresize(I)Vappend,(Ljava/lang/Object;)Ljava/lang/StringBuffer;,(Ljava/lang/String;)Ljava/lang/StringBuffer;toStringCalculatePrimes TotalCount(I)Ljava/lang/StringBuffer; TimeTaken(J)Ljava/lang/StringBuffer;length()I toCharArray()[Cx copyValueOf([CII)Ljava/lang/String;exit :;<=>?@A?BC?DEF\**+*,*-GH*ILBC=>@AMNFmO*** * *  ~* ** * go***9M**Y,**** *!**Y"*#$%*Y&* $*Y'*$*Y(**#d$)Y*MY+*,-M,.>,/:T*d0*01:d1:*Y234 *5* *67'M*Y*9k'*8G&AKku+P} #'*+NH\ 5OP5QR*SRTReUV_WX+#YZOILO[\]^K :PK'Lj e PKQ2WindowTestingFrame$5.classe . ;_ :` :a :b cd ef )g hi jk lm jn op?V? jq jr st suvw cxy _ z{ | }~ j j  )_J j  ) ) j ) lval$MyTextAreaLjavax/swing/JTextArea; Syntheticval$MyTextFieldLjavax/swing/JTextField;this$0LWindowTestingFrame;F(LWindowTestingFrame;Ljavax/swing/JTextArea;Ljavax/swing/JTextField;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLWindowTestingFrame$5;actionPerformed(Ljava/awt/event/ActionEvent;)Ve3Ljava/lang/OutOfMemoryError;String1Ljava/lang/String;String2 TotalTimelenIFormatedNumber[Ce2!Ljava/lang/NumberFormatException;eLjava/awt/event/ActionEvent; SourceFileWindowTestingFrame.java D BC => @A    V  V  java/lang/OutOfMemoryError3Hi, You are seeing this because you got the error: java/lang/StringBuffer  3which means you need to close any programs you can "and/or just use a smaller number. Calculating... Done!  There are V  total prime numbers between 1 and The projected number of primes The difference is java/lang/String V It took . seconds to complete. It took less then a second. /Your number must be grater then or equal to 5. java/lang/NumberFormatException# is not a valid number, try again. WindowTestingFrame$5java/lang/Objectjava/awt/event/ActionListener()Vjavax/swing/JTextAreasetText(Ljava/lang/String;)Vjavax/swing/JTextFieldgetText()Ljava/lang/String;trimjava/lang/IntegerparseInt(Ljava/lang/String;)IWindowTestingFrame YourMaxNumberjava/lang/SystemcurrentTimeMillis()JTimeJjava/lang/Mathlog(D)D ArraySize ResizingArray LSmartArray; SmartArray clearArrayresize(I)Vappend,(Ljava/lang/Object;)Ljava/lang/StringBuffer;,(Ljava/lang/String;)Ljava/lang/StringBuffer;toStringCalculatePrimes TotalCount(I)Ljava/lang/StringBuffer; TimeTaken(J)Ljava/lang/StringBuffer;length()I toCharArray()[Cx copyValueOf([CII)Ljava/lang/String;exit :;<=>?@A?BC?DEF\**+*,*-GH*ILBC=>@AMNFmO*** * *  ~* ** * go***9M**Y,**** *!**Y"*#$%*Y&* $*Y'*$*Y(**#d$)Y*MY+*,-M,.>,/:T*d0*01:d1:*Y234 *5* *67'M*Y*9k'*8G&AKku+P }    #'*+N!H\ 5OP5QR*SRTReUV_WX+#YZOILO[\]^K :PKJTj e PKQ2WindowTestingFrame.classp. Fz{ | E} E~ E     |      # % ' )  E .z  @ E E  E E E E  E E E ResizingArray LSmartArray; YourMaxNumberI EachNumber SquareRootPrimex TotalCount ArraySizeTimeJ TimeTaken(Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethisLWindowTestingFrame;TitleLjava/lang/String;edge1!Ljavax/swing/border/EtchedBorder;LeftLjavax/swing/Box; MyTextAreaLjavax/swing/JTextArea;SizeLjava/awt/Dimension;Right MyButton0Ljavax/swing/JButton; MyButton1 MyButton2 MyButton3 MyTextFieldLjavax/swing/JTextField;Top TheContentLjava/awt/Container;processWindowEvent(Ljava/awt/event/WindowEvent;)VeLjava/awt/event/WindowEvent;CalculatePrimes()VCounterB SourceFileWindowTestingFrame.java Tu SmartArray T GH OJ Ujavax/swing/border/EtchedBorder T javax/swing/JTextArea"Version 2.11 Made by Walter Neary TU4Specal thanks to Avery who made all this possible. U java/awt/Dimensionjavax/swing/JButtonClear Save summarySave all Calculatejavax/swing/JTextField WindowTestingFrame$1 InnerClasses T WindowTestingFrame$2WindowTestingFrame$3WindowTestingFrame$4 TWindowTestingFrame$5 java/awt/BorderLayout Center  u KJ IJ LJ NJ MJ QR SRWindowTestingFramejavax/swing/JFrame(II)VsetTitle(I)Vjavax/swing/BoxcreateVerticalBox()Ljavax/swing/Box;append setEditable(Z)V setBorder(Ljavax/swing/border/Border;)Vadd*(Ljava/awt/Component;)Ljava/awt/Component;setMaximumSize(Ljava/awt/Dimension;)VcreateVerticalStrut(I)Ljava/awt/Component; createGlue()Ljava/awt/Component;.(LWindowTestingFrame;Ljavax/swing/JTextArea;)VaddActionListener"(Ljava/awt/event/ActionListener;)VF(LWindowTestingFrame;Ljavax/swing/JTextArea;Ljavax/swing/JTextField;)VcreateHorizontalBoxgetContentPane()Ljava/awt/Container;java/awt/Container setLayout(Ljava/awt/LayoutManager;)V)(Ljava/awt/Component;Ljava/lang/Object;)V enableEvents(J)Vjava/awt/event/WindowEventgetID()Idisposejava/lang/Systemexitjava/lang/Mathsqrt(D)Dround(D)J getNumber(I)IcurrentTimeMillis()J!EF GHIJKJLJMJNJOJPJQRSRTUV**Yd**+YM N Y : ,-W-,Y: :Y:Y:Y: Y: Y:  WWW WWW WWWWWW WW Y*!"#Y*$" %Y*&" 'Y* (" )Y* *+,:  -W W*-:  .Y/0  12*35W+   %!)"4#;$A%G&N(S,a-f.q/|01246789:;=>?@ FN'v6GX(])d*l,r.~/34XYZ[\%j]^)f_`4[aba.cdf)e`qfg|hgig jg kl ]2m` rno pqVS+6ɠ *78W7 89;XYZrstuV/*<*9*9*:**:*;u**:<=>*?***?@ZA*>!*Y?`?*:*Ap`<**:9*Y`<**:`:*B*CeDWV>@ABCD!F,G<HAIXJbKnLsMvPzQRTUWXXYZvwxy* #%')PK#W+upPKQ2SmartArray.javaP/* * SmartIntArray.java * * Created on May 10, 2005, 8:02 PM */ public class SmartArray { int sp = 0; // "stack pointer" to keep track of position in the array private int[] array; private int growthSize; public SmartArray(){ this( 1 ); } public SmartArray( int initialSize ){ this( initialSize, (int)( initialSize / 4 ) ); } public SmartArray( int initialSize, int growthSize ){ this.growthSize = growthSize; array = new int[ initialSize ]; } public int[] getArray(){ return array; } public int getNumber( int num ){ return array[num]; } public int getLength(){ return array.length; } public void add( int i ){ if( sp >= array.length ){ // time to grow! int[] tmpArray = new int[ array.length + growthSize ]; System.arraycopy( array, 0, tmpArray, 0, array.length ); array = tmpArray; } array[ sp ] = i; sp += 1; // add the number i to the array } public void resize( int i ){ int[] tmpArray = new int[ i ]; System.arraycopy( array, 0, tmpArray, 0, array.length ); array = tmpArray; sp = 0; } public void clearArray(){ int[] tempArray = new int[0]; System.arraycopy(array, 0, tempArray, 0, 0); array = tempArray; sp = 0; } } PKĻPKQ2SmartArray.classl.5 ( ) * + , - ./01spIarray[I growthSize()VCodeLineNumberTableLocalVariableTablethis LSmartArray;(I)V initialSize(II)VgetArray()[I getNumber(I)Inum getLength()IaddtmpArrayiresize clearArray tempArray SourceFileSmartArray.java     2 34 SmartArrayjava/lang/Objectjava/lang/System arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)V!    4*   A *l    d****     /* ;*. 0*"  B**$**` M*,**,**O*Y`& '(()-+7,A- ! BB" #l M*,**,*01234 " ! $^ L*+*+*6789:% &'PKqlPKQ2WindowTesting.javaeimport javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; public class WindowTesting { static WindowTestingFrame MyWindow; public static void main(String[] args) { MyWindow = new WindowTestingFrame("Prime Numbers Version 2.11"); Toolkit TheKit = MyWindow.getToolkit(); Dimension WindowSize = TheKit.getScreenSize(); MyWindow.setBounds( WindowSize.width/4, WindowSize.height/4, WindowSize.width/2, WindowSize.height/2); MyWindow.setVisible(true); } } PKEjePKQ2WindowTesting.classV.> !"# $ % & '( )* )+ , -./MyWindowLWindowTestingFrame;()VCodeLineNumberTableLocalVariableTablethisLWindowTesting;main([Ljava/lang/String;)Vargs[Ljava/lang/String;TheKitLjava/awt/Toolkit; WindowSizeLjava/awt/Dimension; SourceFileWindowTesting.java WindowTestingFramePrime Numbers Version 2.11 0  123 456 78 98 :; <= WindowTestingjava/lang/Object(Ljava/lang/String;)V getToolkit()Ljava/awt/Toolkit;java/awt/Toolkit getScreenSize()Ljava/awt/Dimension;java/awt/DimensionwidthIheight setBounds(IIII)V setVisible(Z)V! /*  >YL+M,l, l,l, l   6= >+& PK3ǮPKQ2 Prime.javaimport java.lang.*; import java.io.*; public class Prime { /* Note that you cant have more then 32 bits of prime numbers * ie a total of 2,147,483,647 prime numbers * and YourMaxNumber must not be larger then 9,223,372,036,854,775,807 * ie 64 bit number is the MAX, dont do over or you will get fined * a java run time error. */ public static void main(String[] args) { try{ int YourMaxNumber = 1000000000, EachNumber, SquareRoot, Prime; long Time = System.currentTimeMillis(), TimeTaken; int x, TotalCount = 2, ArraySize; byte Counter = 0; ArraySize = (int) (YourMaxNumber / (Math.log(YourMaxNumber) - 1.08366)); //Calculate the projected number of primes so we dont need to be creating //and destroying arrays very often (if at all) // because it's a relly relly slow process. SmartArray ResizingArray = new SmartArray( ArraySize, 100 ); //SmartArray.resize(ArraySize); // put 2and 3 in the array to begin with ResizingArray.add(2); ResizingArray.add(3); EachNumber = 5; //Start counting with five // Note: EachNumber MUST be a odd number starting with five or the program will not work. /* **** */ while (EachNumber <= YourMaxNumber){ SquareRoot = (int) Math.round(Math.sqrt(EachNumber)); x = 1; while ((Prime = ResizingArray.getNumber(x)) <= SquareRoot){ x++; if (EachNumber % Prime == 0){ Counter++; // end loop early if we finde a number //System.out.println(EachNumber + " is not a prime number."); break; // that is not prime so we dont waste time. } } if (Counter == 0){ //System.out.println(EachNumber + " is a prime number"); ResizingArray.add(EachNumber); TotalCount++; } Counter = 0; EachNumber = EachNumber + 2; } /* **** */ TimeTaken = System.currentTimeMillis() - Time; String TotalTime = new String(); TotalTime = "" + TimeTaken; int len = TotalTime.length(); char FormatedNumber[] = TotalTime.toCharArray(); if (len >= 4){ x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); System.out.println("It took " + String1 + "." + String2 + " seconds to complete."); } /* **** */ //now we need to make a file and add everything to it. FileOutputStream out; // declare a file output object PrintStream p; // declare a print stream object try{ // Create a new file output stream // connected to "myfile.txt" out = new FileOutputStream("Primes.txt"); // Connect print stream to the output stream p = new PrintStream( out ); p.println("There are " + TotalCount + " total prime numbers"); p.println("between 1 and " + YourMaxNumber); p.println("The projected number of primes " + ArraySize); p.println("The difference is " + (ArraySize - TotalCount)); if (len >= 4){ x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); p.println("It took " + String1 + "." + String2 + " seconds to complete."); } p.println(""); p.println("The list of primes is as follows:"); x = 0; while(x < TotalCount){ p.println (ResizingArray.getNumber(x)); x++; } p.close(); } catch (Exception e){ System.err.println ("Error writing to file"); } } catch(java.lang.OutOfMemoryError e){ System.out.println("Hi, you are seeing this because you got the error:"); System.out.println(e); System.out.println("which means you need to close any programs you can"); System.out.println("and/or just use a smaller number."); } } }PKPKQ2 Prime.class . 4_; `a bc?V?d e f bg bh ij _k _l m n o p q r `stuv wxy z{ |} ~  ` @()VCodeLineNumberTableLocalVariableTablethisLPrime;main([Ljava/lang/String;)V SquareRootIPrimexString1Ljava/lang/String;String2outLjava/io/FileOutputStream;pLjava/io/PrintStream;eLjava/lang/Exception; YourMaxNumber EachNumberTimeJ TimeTaken TotalCount ArraySizeCounterB ResizingArray LSmartArray; TotalTimelenFormatedNumber[CLjava/lang/OutOfMemoryError;args[Ljava/lang/String; SourceFile Prime.java 56   SmartArray 5 java/lang/Stringjava/lang/StringBuffer EHIt took . seconds to complete. java/io/FileOutputStream Primes.txt 5java/io/PrintStream 5 There are  total prime numbersbetween 1 and The projected number of primes The difference is !The list of primes is as follows: 6java/lang/Exception HError writing to filejava/lang/OutOfMemoryError2Hi, you are seeing this because you got the error: 2which means you need to close any programs you can!and/or just use a smaller number.java/lang/Objectjava/lang/SystemcurrentTimeMillis()Jjava/lang/Mathlog(D)D(II)Vadd(I)Vsqrtround(D)J getNumber(I)Iappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;(J)Ljava/lang/StringBuffer;toString()Ljava/lang/String;length()I toCharArray()[C copyValueOf([CII)Ljava/lang/String;println(Ljava/lang/String;)V(Ljava/io/OutputStream;)V(I)Ljava/lang/StringBuffer;closeerr(Ljava/lang/Object;)V!34567/*89 :; <=7O/<76 6 go6 Y d:     =J >6   Y6 p `6    6 `=e7 Y:Y:6:Hd6  :d:YY: Y!:Y" #$Y%#Y& #Y'  d#Gd6  :d:Y(6     ) * :,-#L/+012+ .8< *06 8%=&G'J(X*[,b-i/l3q6w7z:};@CDEFHIJKLX[]8^P_i`bcdefijlnopswuv ~yz{|&}.9G=>?T0@?J:A? 5BC)DC?A? 4BC(DC>A? !A? EFGHIJK?8L?MNON P? Q? RS *TU vVCYW?RXYIZ/[\]^PKW#q PKQ2manuMETA-INF/MANIFEST.MFPKQ2ϡ<<WindowTestingFrame.javaPKQ2w*%=WindowTestingFrame$1.classPKQ2]#] X %AWindowTestingFrame$2.classPKQ2e{M H KWindowTestingFrame$3.classPKQ2'Lj e _WWindowTestingFrame$4.classPKQ2JTj e eWindowTestingFrame$5.classPKQ2#W+uprWindowTestingFrame.classPKQ2Ļ~SmartArray.javaPKQ2qloSmartArray.classPKQ2EjeWindowTesting.javaPKQ23ǮȐWindowTesting.classPKQ2 Prime.javaPKQ2W#q ԩPrime.classPK