B3834 题解

· · 题解

思路分析

只需枚举长方形的一条边,即可求出另外一条边。

但是由于两个长方形的长相等、宽也相等,则认为是同一种长方形,所以我们一条边只能枚举到 \lfloor\sqrt{S}\rfloorS 表示长方形面积)。

核心代码

cin >> A;
for (int i = 1; i * i <= A; ++i) // sqrt(A) 太慢了,可以写成 i * i <= A
    if ((A % i) == 0) ++ans; // 能整除的话将结果+1
cout << ans; // 输出答案