枚举约数

8 分钟

利用成对性质,只枚举到 √n,每找到一个 i 就同时得到 n/i,复杂度 O(√n)。for(int i=1;(long long)i*i<=n;i++) if(n%i==0){ /*i 和 n/i*/ }。注意 i==n/i 时别重复计。

小纸条

枚举 16 的约数,i 走到几会遇到 i==n/i?

登录 后可看答案

枚举约数 · 算法进阶 · op599 课程