Sla*_*ast 1 perfect-square square-root python-3.x
我正在尝试编写一种方法来获取Python中给定范围内的所有完美正方形.大范围,如2621163和520001400002.现在明显迭代范围并检查数字是否完美如此
def is_square(n):
return math.sqrt(n).is_integer()
Run Code Online (Sandbox Code Playgroud)
然后打印它对于大范围是愚蠢的(适用于小范围)并将永远.我想知道是否有任何Python魔法或mathemagic(比如改进的丢番图方程式)我可以为此目的利用.
编辑:我也使用Python 3.X所以我可以使用大整数.
您可以简单地找到在指定范围内具有正方形的最小和最大数字.然后,您可以返回该范围内每个数字的方块.
import math
def perfect_squares(min, max):
lowest = int(math.ceil(math.sqrt(min)))
highest = int(math.sqrt(max))
return (n**2 for n in range(lowest, highest + 1))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7082 次 |
| 最近记录: |