Algorithm 计算三胞胎的数量a*b=c

Algorithm 计算三胞胎的数量a*b=c,algorithm,data-structures,Algorithm,Data Structures,问题是要计算三胞胎的数量,以便 a * b = c where a1 <= a <= a2 and b1 <= b <= b2 and c1 <= c <= c2 a*b=c 其中a1使用ab=ba的fac。也就是说,如果你试过a=2,b=3,那么也试过a=3,b=2是没有意义的 此外,一旦a*b>c2,增加a或b就没有意义。第1部分:O(a2-a1)复杂度的解决方案。 首先,请注意,给定某个a,我们可以使用b1轻松计算b值的数量a、b、c的类型是什么?bc

问题是要计算三胞胎的数量,以便

a * b = c
where a1 <= a <= a2 and b1 <= b <= b2 and c1 <= c <= c2
a*b=c
其中a1使用ab=ba的fac。也就是说,如果你试过a=2,b=3,那么也试过a=3,b=2是没有意义的

此外,一旦a*b>c2,增加a或b就没有意义。

第1部分:O(a2-a1)复杂度的解决方案。
首先,请注意,给定某个
a
,我们可以使用
b1轻松计算
b
值的数量
a、b、c
的类型是什么?bc的类型是整数您已经尝试了什么?我将通过
b1'=c1/a1
b2'=c2/a2
来更新a1、a2或b1、b2的范围。因此,Triples的数量应为
(b2'-b1'+1)*(a2-a1+1)
。当然,应该考虑到一些极端情况。我现在时间不够。我稍后会尝试创建一个完整的答案…@AlexLop:你的想法很好,但你不可能对所有数字都有一个封闭的公式;我想你必须对每个
a
进行调整。