Sue Evans
Hit the space bar for next page
The study of mathematics is separated into many fields. The one that tends to lead students to discover the beauty of mathematics is the field of number theory. This field deals with numbers and their relationships to each other.
The field of number theory has lead to discoveries such as :
1 = 1 3 = 1 + 2 6 = 1 + 2 + 3 10 = 1 + 2 + 3 + 4
Your mission is to write a program that examines positive integers within a range that the user specifies and categorizes them as follows:
You may assume that the user, a.k.a. your grader, will enter appropriate integers for this program.
The results are to be printed out in a well-formatted table. See the sample run below.
Your program MUST include the following functions.
Do NOT change the function names or parameters in the
function headers given below.
Since this is a math-related project it's appropriate for us to use
n as a variable name for an integer. When a variable is holding
the value of something, it's important to name that variable with a
meaningful name for what's being held, but just an integer, is okay to be
called n. Similarly, it's okay to use a and b
You may choose to use more functions if you wish, but these are sufficient. All predicate functions, by definition, must return True or False. You have some flexibility in implementing the other functions.
def main(): # is the skeleton of the program def printGreeting(): # explains the program to the user def printTableHeading(): # prints the heading of the table def isOdd(n): # a predicate function that returns True if n is odd # and returns False if not. def isPrime(n): # a predicate function that returns True if n is prime, #and False if not def checkForPerfect(n): # classifies n as "perfect", "abundant" or "deficient". # A different value is returned for each category. def sumDivisors(n): # returns the sum of the divisors of n. def isDivisor(a, b): # a predicate function that returns True if b is # a divisor of a, and False if not. def isSquare(n): # returns True if n is a perfect square, False if not. def isTriangular(n): # returns True if n is a triangular number, False if not. def printTableLine(n, odd, prime, perfect, square, triangular): # prints the information for one number on one line of the table.
ecs225d-linux-01[257] python hw5.py This program classifies positive integers as Odd/Even, Prime/Composite, Perfect/Abundant/Deficient, Square, and Triangular You will now get to choose the range of positive integers that you would like to see classified. Start with which positive integer ? Please enter an integer between 1 and 100000 : 1 End with which positive integer ? Please enter an integer between 1 and 100000 : 30 Int Classifications.................................... ----------------------------------------------------------------------- 1 Odd Neither Deficient Square Triangular 2 Even Prime Deficient 3 Odd Prime Deficient Triangular 4 Even Composite Deficient Square 5 Odd Prime Deficient 6 Even Composite Perfect Triangular 7 Odd Prime Deficient 8 Even Composite Deficient 9 Odd Composite Deficient Square 10 Even Composite Deficient Triangular 11 Odd Prime Deficient 12 Even Composite Abundant 13 Odd Prime Deficient 14 Even Composite Deficient 15 Odd Composite Deficient Triangular 16 Even Composite Deficient Square 17 Odd Prime Deficient 18 Even Composite Abundant 19 Odd Prime Deficient 20 Even Composite Abundant 21 Odd Composite Deficient Triangular 22 Even Composite Deficient 23 Odd Prime Deficient 24 Even Composite Abundant 25 Odd Composite Deficient Square 26 Even Composite Deficient 27 Odd Composite Deficient 28 Even Composite Perfect Triangular 29 Odd Prime Deficient 30 Even Composite Abundant
Let's run it again with a different range of values
ecs225d-linux-01[258] python hw5.py This program classifies positive integers as Odd/Even, Prime/Composite, Perfect/Abundant/Deficient, Square, and Triangular You will now get to choose the range of positive integers that you would like to see classified. Start with which positive integer ? Please enter an integer between 1 and 100000 : 20 End with which positive integer ? Please enter an integer between 20 and 100000 : 50 Int Classifications.................................... ----------------------------------------------------------------------- 20 Even Composite Abundant 21 Odd Composite Deficient Triangular 22 Even Composite Deficient 23 Odd Prime Deficient 24 Even Composite Abundant 25 Odd Composite Deficient Square 26 Even Composite Deficient 27 Odd Composite Deficient 28 Even Composite Perfect Triangular 29 Odd Prime Deficient 30 Even Composite Abundant 31 Odd Prime Deficient 32 Even Composite Deficient 33 Odd Composite Deficient 34 Even Composite Deficient 35 Odd Composite Deficient 36 Even Composite Abundant Square Triangular 37 Odd Prime Deficient 38 Even Composite Deficient 39 Odd Composite Deficient 40 Even Composite Abundant 41 Odd Prime Deficient 42 Even Composite Abundant 43 Odd Prime Deficient 44 Even Composite Deficient 45 Odd Composite Deficient Triangular 46 Even Composite Deficient 47 Odd Prime Deficient 48 Even Composite Abundant 49 Odd Composite Deficient Square 50 Even Composite Deficient ecs225d-linux-01[259]
Although your output need not be identical to the above, all information (including the greeting) must be present.
For 5 points of Extra Credit:
Instead of exiting when the user enters a bad value,
keep prompting the user and getting new values until
the user enters a valid value.
You must be logged into your account and in the same directory as the file you are trying to submit.
To submit your homework, type the following at the linux prompt:
submit cs201 HW5 hw5.py
To verify that your project was submitted, you can execute the following command at the Unix prompt. It will show all files that you submitted in a format similar to the Unix 'ls' command.
submitls cs201 HW5