【欧拉计划】12. Highly divisible triangular number
(本题取 $n$ 为第一个因数个数大于 $500$ 的三角形数 $76576500$)
【思路】依次枚举三角形数,每次 $\mathcal O(n)$ 求所有因数,因数个数大于 $500$ 就中断。时间复杂度为 $\mathcal O(n^2)$。
【优化】如果整数 $x$ 有因数 $i$,那么 $\dfrac{x}{i}$ 必然也是它的因数。因此可以把统计因数个数的时间复杂度降到 $\mathcal O(\sqrt n)$,总体优化到 $\mathcal O(n \sqrt n)$:
1 |
|
【欧拉计划】12. Highly divisible triangular number