Phone

+919997782184

Email

support@roboticswithpython.com

Geeks of Coding

• Author
Posts
• #936
Abhishek Tyagi
Keymaster

1. What are while loops in Python?

While loops let the computer execute a set of instructions while a condition is true.

2. Fill in the blanks to make the print_prime_factors function print all the prime factors of a number.
A prime factor is a number that is prime and divides another without a remainder.

``````def print_prime_factors(number):
factor = 2
# Keep going until the factor is larger than the number
while factor <= number:
# Check if factor is a divisor of number
if number % factor == 0:
# If it is, print it and divide the original number
print(factor)
number = number / factor
else:
# If it's not, increment the factor by one
factor +=1
return "Done"

print_prime_factors(100)
# Should print 2,2,5,5
# DO NOT DELETE THIS COMMENT``````

3. The following code can lead to an infinite loop. Fix the code so that it can finish successfully for all numbers.
Note: Try running your function with the number 0 as the input, and see what you get!

``````# Python program to check if given
# number is power of 2 or not

# Function to check if x is power of 2
def is_power_of_two(n):
if (n == 0):
return False
while (n != 1):
if (n % 2 != 0):
return False
n = n // 2

return True

print(is_power_of_two(0)) # Should be False
print(is_power_of_two(1)) # Should be True
print(is_power_of_two(8)) # Should be True
print(is_power_of_two(9)) # Should be False``````

4. Fill in the empty function so that it returns the sum of all the divisors of a number, without including it.
A divisor is a number that divides into another without a remainder.

``````import math

# Function to calculate sum of all proper
# divisors num --> given natural number
def sum_divisors(num) :

# Final result of summation of divisors
if num == 0:
return 0
else:
result = 0

# find all divisors which divides 'num'
i = 2
while i<= (math.sqrt(num)) :

# if 'i' is divisor of 'num'
if (num % i == 0) :

# if both divisors are same then
if (i == (num / i)) :
result = result + i;
else :
result = result +  (i + num/i);
i = i + 1

# Add 1 to the result as 1 is also
# a divisor
hell = int(result + 1)
return (hell)

print(sum_divisors(0))
# 0
print(sum_divisors(3)) # Should sum of 1
# 1
print(sum_divisors(36)) # Should sum of 1+2+3+4+6+9+12+18
# 55
print(sum_divisors(102)) # Should be sum of 2+3+6+17+34+51
# 114``````

5. The multiplication_table function prints the results of a number passed to it multiplied by 1 through 5.
An additional requirement is that the result is not to exceed 25, which is done with the break statement.
Fill in the blanks to complete the function to satisfy these conditions

``````def multiplication_table(number):
# Initialize the starting point of the multiplication table
multiplier = 1
# Only want to loop through 5
while multiplier <= 5:
result = number*multiplier
# What is the additional condition to exit out of the loop?
if result>25 :
break
print(str(number) + "x" + str(multiplier) + "=" + str(result))
# Increment the variable for the loop
multiplier += 1

multiplication_table(3)
# Should print: 3x1=3 3x2=6 3x3=9 3x4=12 3x5=15

multiplication_table(5)
# Should print: 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25

multiplication_table(8)
# Should print: 8x1=8 8x2=16 8x3=24``````