Assume the brainy or smart number will be positive natural number (i.e., integer >= 1) -- unless otherwise noted
Assume all numeric method parameters will be positive natural numbers (i.e., integer >= 1) -- unless otherwise noted
Assume all numeric return values will be non-negative natural numbers (i.e., integer >= 0) -- unless otherwise noted
Java has multiple types of integers -- for SmartNumber all ivars, numeric return data types, and numeric parameters will be type long, unless otherwise noted
For NumberRange all ivars, numeric return data types, and numeric parameters will be type int, unless otherwise noted
All required methods should be designated as public -- note that you may code your own "helper methods" that may have any access level modifier that you want
All required ivars should be designated as private
Sketch things out on paper as you go (this is called using algorithms/recipes)
When a method description uses terminology such as "our number", "this number", "the number", etc it is talking about the num in the particular instance of the brainy or smart number
Do the easier problems first
Liberally add additional/helper methods
Remember again Java is case sensitive (picky about spelling of class and method names)
Introduction To Objects With Java
(Chapter 603 - Loops)