对于这个 for 循环:
for (int i = 1; i <= sqrt(n); i ++ )
sqrt(n),需要计算,但是 nnn 一直没有变过,所以实际执行的时候会重复算 sqrt(n) 吗?
sqrt(n)
算法竞赛上说这样写比 i * i <= n 更快。
i * i <= n