转自:程序猿_哲
一道挺有意思的逻辑题
房间里有100盏电灯,编号为1,2,3……100,每盏灯上有一个按钮,初始时灯全都是关的。
编好号的100位同学由房间外依次走进去,将自己编号的倍数的灯的按钮全部按一次,例如第一位同学把编号是1的倍数的灯的按钮按一下(此时100盏灯全亮),第二位同学把编号是2的倍数的灯的按钮按一下(此时只有50盏灯亮着,50盏被这个人按灭了)……第100位同学把编号是100的倍数的灯(即编号为100的灯)的按钮按一下,请问依次走完后,还有多少盏灯亮着?
由于第一次按 灯才亮
所以最后亮的灯是被按了奇数次
所以求它的所有因子(包括1)的总数是基数
由于 i = 因子1*因子2 是双向对称的
所以 基数的情况就是有一个 i = 因子x * 因子x
所以就是平方数