约 8 分钟
约数成对出现(若 d 整除 n,则 n/d 也整除 n),两者中较小的不超过 √n。所以只需试除到 √n 就够了,把 O(n) 降到 O(√n)。循环写 for(int i=2;(long long)i*i<=n;i++)。
for(int i=2;(long long)i*i<=n;i++)
判断 97 是否为质数,最多试除到几?
登录 后可看答案