diff options
author | RossTheRoss <mstrapp@protonmail.com> | 2020-01-30 16:55:04 -0600 |
---|---|---|
committer | RossTheRoss <mstrapp@protonmail.com> | 2020-01-30 16:55:04 -0600 |
commit | 175721a63b426355274fa9e8063f762020ab8362 (patch) | |
tree | cf2c1b33233d660c9f50de5e659b9343bb264984 /OLD/csci1913/Java/lab5_strap012.java | |
parent | Make Python thing in Python (diff) | |
download | homework-175721a63b426355274fa9e8063f762020ab8362.tar homework-175721a63b426355274fa9e8063f762020ab8362.tar.gz homework-175721a63b426355274fa9e8063f762020ab8362.tar.bz2 homework-175721a63b426355274fa9e8063f762020ab8362.tar.lz homework-175721a63b426355274fa9e8063f762020ab8362.tar.xz homework-175721a63b426355274fa9e8063f762020ab8362.tar.zst homework-175721a63b426355274fa9e8063f762020ab8362.zip |
R E A R R A N G E
Diffstat (limited to 'OLD/csci1913/Java/lab5_strap012.java')
-rw-r--r-- | OLD/csci1913/Java/lab5_strap012.java | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/OLD/csci1913/Java/lab5_strap012.java b/OLD/csci1913/Java/lab5_strap012.java new file mode 100644 index 0000000..45a101b --- /dev/null +++ b/OLD/csci1913/Java/lab5_strap012.java @@ -0,0 +1,90 @@ +// +// SIEVE. The Sieve of Eratosthenes. +// +// James B. Moen +// 08 Oct 19 +// +// Test the SIEVE class, for 30 points total. +// + +// +// Put your code for the class SIEVE here!!! +// +class Sieve { + private boolean[] numbers; + private int realMax; + public Sieve(int max){ + if (max<2) + throw new IllegalArgumentException(); + numbers = new boolean[max]; + realMax = (max - 1); + for (int i=2; i<max; i+=1) { numbers[i]=true; } + } + public void findPrimes() { + for (int i=2; i<=realMax; i+=1) { + //Only look for composite numbers if the number is prime + if (numbers[i]) { + for (int j=(i*2); j<=realMax; j+=i) { + numbers[j]=false; + } + } + // System.out.println(i); + } + } + public String toString(){ + String str = ""; + for (int n = 0; n <= realMax; n += 1) { + if (numbers[n]) { + str += n; str += " "; + } + } + return str; + } +} +// TOSS THE KNEES. Run SIEVE on some examples. + +class TossTheKnees +{ + +// MAIN. Find some primes. + + public static void main(String [] args) + { + Sieve sieve = null; // We must initialize SIEVE or Java will cry. + +// 5 points. This must print "Sieve size must be at least 2." but without the +// quotes. + + try + { + sieve = new Sieve(0); + } + catch (IllegalArgumentException oops) + { + System.out.println("Sieve size must be at least 2."); + } + +// 5 points. This must print nothing. + + try + { + sieve = new Sieve(100); + } + catch (IllegalArgumentException oops) + { + System.out.println("Sieve size must be at least 2."); + } + +// 10 points. This must print integers from 2 to 99, separated by blanks. + + System.out.println(sieve); + +// 10 points. This must print the prime numbers between 2 and 99, separated by +// blanks. They are: +// +// 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 + + sieve.findPrimes(); + System.out.println(sieve); + } +} |