w3resource

Python square root generator: Generate square, cube roots of numbers

Python: Generators Yield Exercise-13 with Solution

Write a Python program to create a generator that generates the square, cube roots of numbers from 1 to n.

Sample Solution:

Python Code:

import math

def roots_generator(n):
    for i in range(1, n+1):
        yield math.sqrt(i), i**(1/3)

# Accept input from the user
n = int(input("Input a number: "))

# Create the roots generator
roots_gen = roots_generator(n)

# Generate and print the square roots and cube roots
print("Square roots and cube roots of numbers from 1 to", n)
for i, (square_root, cube_root) in enumerate(roots_gen, start=1):
    print("Number:", i)
    print("Square root:", square_root)
    print("Cube root:", cube_root)
    print()

Sample Output:

Input a number: 10
Square roots and cube roots of numbers from 1 to 10
Number: 1
Square root: 1.0
Cube root: 1.0

Number: 2
Square root: 1.4142135623730951
Cube root: 1.2599210498948732

Number: 3
Square root: 1.7320508075688772
Cube root: 1.4422495703074083

Number: 4
Square root: 2.0
Cube root: 1.5874010519681994

Number: 5
Square root: 2.23606797749979
Cube root: 1.7099759466766968

Number: 6
Square root: 2.449489742783178
Cube root: 1.8171205928321397

Number: 7
Square root: 2.6457513110645907
Cube root: 1.912931182772389

Number: 8
Square root: 2.8284271247461903
Cube root: 2.0

Number: 9
Square root: 3.0
Cube root: 2.080083823051904

Number: 10
Square root: 3.1622776601683795
Cube root: 2.154434690031884

Explanation:

In the above exercise,

  • The "roots_generator()" function is a generator function that yields the square root and cube root of numbers from 1 to n. It uses the math.sqrt() function from the math module to calculate the square root and the exponentiation operator ** to calculate the cube root.
  • The program accepts a number from the user as n. It then creates the roots_generator generator from the input number. Finally, the enumerate function is used to iterate over the roots_gen generator and obtain both the index i and the square root and cube root values. By using enumerate with the start=1 parameter, the index i starts from 1. This allows us to print the correct number associated with each pair of roots.

Flowchart:

Flowchart: Generate square, cube roots of numbers.

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Generate the next happy number.
Next: Generate next Armstrong numbers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/python-exercises/generators-yield/python-generators-yield-exercise-13.php