/* Lesley Hogan * July 31st 2003 * WhileTwo.java * More while loops * Homework from: * http://teachertech.rice.edu/Participants/marilynt/Lessons/Exeter/Programming/whileLab01.html */ package net.bunnie.dos; import net.bunnie.*; public class WhileTwo { public static void main (String[] args) { int enteredInt = 208; int pos = 0; int neg = 0; int sum = 1; int a = 0; int b = 0; int fib[]; String[] fibS; String perfect = ""; KeyboardReader r = new KeyboardReader(); while (enteredInt != 0) { Echo.e("Please enter a positive or negative number: "); enteredInt = r.readInt(); if (enteredInt > 0) { pos++; } if (enteredInt < 0) { neg++; } } Echo.e("You entered " + pos + " positive numbers and " + neg + " negative numbers.\n\n"); while (perfect.toLowerCase().equals("quit") == false) { Echo.e("Please enter a positive number: "); perfect = r.readLine(); if (perfect.toLowerCase().equals("quit") == false) { try { enteredInt = Integer.parseInt(perfect); if (enteredInt <= 0) { throw new NumberFormatException(); } else { /* deficient * perfect * abundant */ sum = 1; for (int i = 2; i < enteredInt; i++) { if (enteredInt % i == 0) { sum += i; } } if (sum < enteredInt) { Echo.e("The number " + enteredInt + " is deficient.\n\n"); } else if (sum == enteredInt) { Echo.e("The number " + enteredInt + " is perfect.\n\n"); } else { Echo.e("The number " + enteredInt + " is abundant.\n\n"); } } } catch (NumberFormatException nfe) { Echo.e("That is not a (positive) number!\n\n"); perfect = "quit"; } } else { Echo.e("\n"); } } Echo.e("Please enter two unique positive integers greater\nthan one to find their greatest common divisor:\nSmaller number: "); a = r.readInt(); Echo.e("Larger number: "); b = r.readInt(); if (((a < 0) || (b < 0)) || ((a == 1) || (b == 1)) || (a == b)) { Echo.e("Wow, can you not read or something?\nI cannot find the GCD if a is = to b or\na and/or b are less than 0 or = to 1!\n\n"); } else { if (a > b) { enteredInt = a; a = b; b = enteredInt; } enteredInt = a - 1; if (b % a == 0) { Echo.e("The greatest common divisor is " + a + "\n\n"); } else { while (enteredInt > 1) { if ((a % enteredInt == 0) && (b % enteredInt == 0)) { Echo.e("The greatest common divisor is " + enteredInt + "\n\n"); enteredInt = 0; } else { enteredInt--; } } if (enteredInt != 0) { Echo.e("No common divisors.\n\n"); enteredInt = 0; } } } a = 0; Echo.e("Enter how many Fibonacci numbers you would like to see: "); enteredInt = r.readInt(); if (enteredInt < 1) { Echo.e("You cannot view " + enteredInt + " digits of the series. That is just ridiculous.\n\n"); } else { fib = new int[enteredInt]; fibS = new String[enteredInt]; while (a < enteredInt) { if (a == 0) { fib[0] = 0; } else if (a == 1) { fib[1] = 1; } else { fib[a] = fib[a - 1] + fib[a - 2]; } a++; } for (int i = 0; i < enteredInt; i++) { fibS[i] = "" + fib[i]; } Echo.e("Fibonacci's sequence of " + enteredInt + " digits is " + ToFileArray.join(", ", fibS) + "\n\n"); } a = 1000; b = 0; while (a < 1000000) { a *= 2; b += 12; } Echo.e("In " + b + " hours, Casey will have at least 1,000,000 organisms.\n\n"); } }