# 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:**

**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.

**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

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics