题解:AT_diverta2019_d DivRem Number
题意
给定一个 $N$,求所有的 $M$ 满足 $\lfloor \frac{N}{M}\rfloor = N \bmod M$。
分析
众所周知,除法的一般形式都是这样的:
$$N \div M = Q \cdots R$$
放入题中式子可得
$$N \div M = M \cdots M$$
$$\therefore N = M\times M + M$$
所以时间复杂度在 $O(\sqrt N)$ 左右,枚举 $M$ 能够通过。
Code
1 | |
TIPS
使用
1 | |
可将整个程序所有的 int 变为 long long,可是这样做有一个弊端,就是 main() 的返回值会变成 long long,可是 C++ 中不允许这么做。
为了解决这个问题,我们可以将 main() 的返回值变为 signed(即无符号整数)也可以正常编译。
题解:AT_diverta2019_d DivRem Number
https://blog.opzc35.my/题解:AT-diverta2019-d-DivRem-Number/