智商压制的一道题
这个题有个数学定理:
一般数(非完全平方数)的因子有偶数个
完全平凡数的因子有奇数个
开开关的时候,第i个灯每到它的因子一轮的时候就会拨动一下,也就是每个灯拨动的次数是它的因子数
而拨动偶数次是关,拨动奇数次是开
现在就是求哪些数的因子有奇数个,也就是求n以内的完全平凡数
这里又有一个定理:
n以内的完全平方数个数是sprt(n)
所以代码很简单
public int bulbSwitch(int n) { return (int)Math.sqrt(n); }