📅  最后修改于: 2023-12-03 14:55:46.703000             🧑  作者: Mango
有时我们需要检查一个数字是否可以由两个平方的乘积表示。这种情况下,我们可以使用以下算法:
以下是一个Python实现的示例代码片段:
import math
def check_square_product(num):
sqrt_num = int(math.sqrt(num))
for i in range(1, sqrt_num + 1):
diff = num - i * i
sqrt_diff = int(math.sqrt(diff))
if sqrt_diff * sqrt_diff == diff:
return True
return False
代码说明:
sqrt
函数计算平方根check_square_product
函数,参数为需要验证的数字 num
sqrt_num
sqrt_num
遍历数字,计算差 diff
diff
是完全平方数,则返回 True,否则返回 False由于该算法只需要遍历到平方根,因此复杂度为O(sqrt(n)),可以保证较快的计算速度。