约 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 时别重复计。
for(int i=1;(long long)i*i<=n;i++) if(n%i==0){ /*i 和 n/i*/ }
枚举 16 的约数,i 走到几会遇到 i==n/i?
登录 后可看答案