Compute floor(sqrt(n)) exactly using integer arithmetic.
What You Will Learn
isqrt(n) returns the greatest integer whose square is no more than n; it works for large integers without floating-point rounding.
Version requirement: this module was added in Python 3.15. The matching functions in math work on older versions, although those aliases are soft-deprecated starting with 3.15.
Step-by-Step Example
The example below makes the behavior visible with small input values that you can change safely.
from math.integer import isqrt
print(isqrt(12345))
How the Example Works
- The imports provide the standard-library tools used in the demonstration: math.integer.
- The print() calls make the return values or state visible so you can compare them with the explanation and check your prediction.
This code uses an API available from Python 3.15. Run it in Python 3.15 or newer; older interpreters may fail at the import statement.
Expected output (calculated using the equivalent functions in math on the available interpreter; not a Python 3.15 runtime test):
111
Another Example: Compare the Results
Try a second input and compare it with the first. Notice whether the result changes in type, value, order, or number of items.
from math.integer import isqrt
print(isqrt(15), isqrt(16))
This comparison also requires Python 3.15 because it imports math.integer.
When You Would Use This
Use these exact integer operations for counting arrangements, simplifying ratios, or computing integer roots. This module is new in Python 3.15: on earlier interpreters, use the corresponding functions in math instead. The old math aliases remain available but are soft-deprecated in 3.15.
Practice: Modify the Code
Find the largest integer square that fits inside a quantity.
Verify the changed output against the behavior described above, including the relevant invalid or boundary case.
For complete parameters and version details, consult the official Python documentation.
Common Beginner Mistakes
- Passing a negative integer or expecting rounding to the closest root.
- Using math.integer on a Python interpreter older than 3.15 without checking availability.
Key Takeaways
- Compute floor(sqrt(n)) exactly using integer arithmetic.
- isqrt(n) returns the greatest integer whose square is no more than n; it works for large integers without floating-point rounding.
- Apply this operation only after checking the assumptions and input conditions shown in the example.