Leetcode319 灯泡开关 (数学数论题目)

一个一个的分析

编号为1的灯泡只会被按1次           亮

编号为2的灯炮,会被按两次          灭

编号为3的灯泡,会被按两次         灭

。。。。

找规律发现编号为完全平方数的都会被按奇数次?

如果证明,第i个数被按的次数= i的因子的个数=(a1+1)(a2+1)。。。(an+1),  a1是质因数完全分解的指数。

如果i的因子个数为奇数,那么所有的aj+1都必须是奇数,就有aj是偶数,就证明了i是完全平方数。

所以等价于求1到n完全平方数的个数,显然这个数就是sqrt(n)下取整

 

相关文章: