Skip to content
Sign UpLog In
This post is read-only. Explore Repls and connect with other creators on Community.View Community
The info in this post might be out of date, check out our docs instead. View docs

6.1. While: List of squares


"For a given integer N, print all the squares of positive integers where the square is less than or equal to N, in ascending order."

Example input

Example output
1 4 9 16 25 36 49

4 years ago
You are viewing a single comment. View All

what I meant is that your script is computing too much stuff for its purpose. That's because range(1, x+1) is way too big, especially if x itself is big. If x=10^10, then you only really need to stop at 10^5, because the square of this number is 10^10.
Here is a modification of your own script:

from math import sqrt x = int(input("Enter the number: ")) print("All the squares in the given range are:") print([i**2 for i in range(1, int(sqrt(x))+1) if i**2 <= x])

Try your script with x = 10000000000 and try this new version. You'll see the difference.

4 years ago