@pole55 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.

"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

50

Example output

1 4 9 16 25 36 49

@pole55 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 ifxitself is big. Ifx=10^10, then you only really need to stop at10^5, because the square of this number is10^10.Here is a modification of your own script:

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