我觉得本题出得并不好,就是道纯粹的数学问题: 对于一个普通数来说,比如66的 factor 有1, 2, 3, 6,是成对出现的,比如, 5,7亦是如此。 只有完全平方数,有奇数个factor,比如对于9有:1,3,9 三个数所以我们其实是要找完全平方数的个数 时间复杂度:空间复杂度: 代码如下所示: class Solution { public int bulbSwitch(int n) { return (int)Math.sqrt(n); }}