answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
rusak2 [61]
2 years ago
6

Do Exercise 6.4 from your textbook using recursion and the is_divisible function from Section 6.4. Your program may assume that

both arguments to is_power are positive integers. Note that the only positive integer that is a power of "1" is "1" itself. After writing your is_power function, include the following test cases in your script to exercise the function and print the results: print("is_power(10, 2) returns: ", is_power(10, 2)) print("is_power(27, 3) returns: ", is_power(27, 3)) print("is_power(1, 1) returns: ", is_power(1, 1)) print("is_power(10, 1) returns: ", is_power(10, 1)) print("is_power(3, 3) returns: ", is_power(3, 3))

Computers and Technology
1 answer:
Reika [66]2 years ago
7 0

Answer:

Here is the python method:

def is_power(n1, n2): # function that takes two positive integers n1 and n2 as arguments

   if(not n1>0 and not n2>0): #if n1 and n2 are not positive integers

       print("The number is not a positive integer so:") # print this message if n1 and n2 are negative

       return None # returns none when value of n1 and n2 is negative.

   elif n1 == n2: #first base case: if both the numbers are equal

       return True #returns True if n1=n2

   elif n2==1: #second base case: if the value of n2 is equal to 1

       return False #returns False if n2==1

   else: #recursive step

       return is_divisible(n1, n2) and is_power(n1/n2, n2) #call divisible method and is_power method recursively to determine if the number is the power of another

Explanation:

Here is the complete program.

def is_divisible(a, b):

   if a % b == 0:

       return True

   else:

       return False

def is_power(n1, n2):

   if(not n1>0 and not n2>0):

       print("The number is not a positive integer so:")  

       return None  

   elif n1 == n2:

       return True

   elif n2==1:

       return False

   else:

       return is_divisible(n1, n2) and is_power(n1/n2, n2)  

print("is_power(10, 2) returns: ", is_power(10, 2))

print("is_power(27, 3) returns: ", is_power(27, 3))

print("is_power(1, 1) returns: ", is_power(1, 1))

print("is_power(10, 1) returns: ", is_power(10, 1))

print("is_power(3, 3) returns: ", is_power(3, 3))

print("is_power(-10, -1) returns: ", is_power(-10, -1))  

The first method is is_divisible method that takes two numbers a and b as arguments. It checks whether a number a is completely divisible by number b. The % modulo operator is used to find the remainder of the division. If the remainder of the division is 0 it means that the number a is completely divisible by b otherwise it is not completely divisible. The method returns True if the result of a%b is 0 otherwise returns False.

The second method is is_power() that takes two numbers n1 and n2 as arguments. The if(not n1>0 and not n2>0) if statement checks if these numbers i.e. n1 and n2 are positive or not. If these numbers are not positive then the program prints the message: The number is not a positive integer so. After displaying this message the program returns None instead of True of False because of negative values of n1 and n2.

If the values of n1 and n2 are positive integers then the program checks its first base case: n1 == n2. Suppose the value of n1 = 1 and n2 =1 Then n1 is a  power of n2 if both of them are equal. So this returns True if both n1 and n2 are equal.

Now the program checks its second base case n2 == 1. Lets say n1 is 10 and n2 is 1 Then the function returns False because there is no positive integer that is the power of 1 except 1 itself.

Now the recursive case return is_divisible(n1, n2) and is_power(n1/n2, n2)  calls is_divisible() method and is_power method is called recursively in this statement. For example if n1 is 27 and n2 is 3 then this statement:

is_divisible(n1, n2) returns True because 27 is completely divisible by 3 i.e. 27 % 3 = 0

is_power(n1/n2,n2) is called. This method will be called recursively until the base condition is reached. You can see it has two arguments n1/n2 and n2. n1/n2 = 27/3 = 9 So this becomes is_power(9,3)

The base cases are checked. Now this else statement is again executed  return is_divisible(n1, n2) and is_power(n1/n2, n2) as none of the above base cases is evaluated to true. when is_divisible() returns True as 9 is completely divisible by 3 i.e. 9%3 =0 and is_power returns (9/3,3) which is (3,3). So this becomes is_power(3,3)

Now as value of n1 becomes 3 and value of n2 becomes 3. So the first base case elif n1 == n2: condition now evaluates to true as 3=3. So it returns True. Hence the result of this statement print("is_power(10, 2) returns: ", is_power(10, 2))  is:                                                                                                

is_power(27, 3) returns:  True

You might be interested in
A natural language processor reads the sentence The walk was tiring and mistakes the noun “walk” as a verb. What is such an erro
Ray Of Light [21]

Answer: Which of these is a compound morphology? (A. bookkeeper = book + keeper)

The software first uses (NLU) to map and analyze the input. It then creates the output using (NLG).

(It works by mapping input to representation and analyzing them.)

What type of morphology does this follow? (D. derivational morphology)

What is such an error called? (C. lexical ambiguity)

Explanation: Plato

4 0
2 years ago
Gloria needs to show in spreadsheet form the number of students in her class who speak different languages. Which type of graph
vaieri [72.5K]
I think the most suitable chart to be used is a pie chart. A pie chart is used to show percentages and the best way to show relative sizes of data in your set. It is a good way to show which language is spoken more in the classroom, which is least spoken and at a glance. I hope my answer helps.
4 0
2 years ago
Your computer has gradually slowed down. What's the most likely reason?
sweet-ann [11.9K]
It could be old ... could be your connection to the internet... could be a virus. You can go to walmart or your super store and buy a usb for your computer. There are ones that can speed up your computer. I had to buy it for mine and it worked. It might be over 20 dollars depends on where you go.
8 0
2 years ago
Which of the following statements does not contain an error?
Drupady [299]
III is correct .... esc code use \
3 0
2 years ago
Which command suppresses the visibility of a particular Row or column in a worksheet?
leonid [27]

Answer:

Ctrl+Space is the keyboard shortcut to select an entire column.

Explanation:

When you press the Shift+Space shortcut the first time it will select the entire row within the Table.  Press Shift+Space a second time and it will select the entire row in the worksheet.

The same works for columns.  Ctrl+Space will select the column of data in the Table.  Pressing the keyboard shortcut a second time will include the column header of the Table in the selection.  Pressing Ctrl+Space a third time will select the entire column in the worksheet.

You can select multiple rows or columns by holding Shift and pressing the Arrow Keys multiple times.

4 0
2 years ago
Other questions:
  • Foods that are high in _________ have the least impact on slowing the body's absorption rate of alcohol.
    5·1 answer
  • Reading is the process of transferring data, instructions, and information from memory to a storage medium.
    15·1 answer
  • True or false? The largest component of a database is a field.
    12·2 answers
  • Can someone please help me with this
    9·1 answer
  • A domain's ____ settings must be configured correctly so that the mail transfer agent (mta) can establish a connection with a re
    15·1 answer
  • While researching ideas for cutting energy costs is his company. Hector watches an online video in which a business expert says,
    6·2 answers
  • A network design engineer has been asked to design the IP addressing scheme for a customer network. The network will use IP addr
    6·1 answer
  • You work for a car rental agency and want to determine what characteristics are shared among your most loyal customers. To do th
    10·1 answer
  • c Assign to maxSum the max of (numA, numB) PLUS the max of (numY, numZ). Use just one statement. Hint: Call FindMax() twice in a
    10·1 answer
  • Which are technical and visual demands that need to be considered when planning a project? Choose three answers
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!