100盏灯暗灭情况

QUESTION:

有100盏灯,初始都是灭的,每个灯有开关按一下亮,再按一下灭,有100个人,顺序进入房间,每个人必须按他的序号的整数倍的数字的灯开关。问100个人走过房间后,有多少盏灯是亮着的。

EXPLANATION:

这道题目其实并不是一个编程题,而是一道数学题。我们可以考虑:

  1. 一盏灯的暗灭取决于他的被按的次数
  2. 那一盏灯被按的次数取决于他的约数的个数
  3. 那么奇数个约数和偶数个约数是怎么确定的呢
  4. 约数其实都是两两出现,如16,他的约数是 116 ,28 ,4*4 这个时候就发现规律了
  5. 如果这个数是平方数,那么他的约数个数因为有一个是平方,所以是奇数,其他的均为偶数。
  6. 所以这道题的结果就是平方数的个数。也就是10个。

    SOLUTION: