有100把锁,编号为1,2,3,…,100。一个人先把他们都打开。第二次,把能整除2的锁锁上。第三次,切换能整除3的锁的开闭状态,也就是说,把开着的锁关上,把锁着的锁打开。第四次,切换能整除4的锁的开闭状态。依次类推,操作进行100次。那么,现在问题来了,有多少把锁是开着的?
先分析下,一个锁到底被切换了多少次状态?
比如第15把锁,在第1,3,5,15次操作的时候被切换了状态,第一次打开,第三次关上,第五次又打开,第十五次关上。
什么样的锁是被打开的呢?
如果第X把锁,X有奇数个因数,他就被操作了奇数次,打开,关上,打开…关上,打开。最后的状态时打开的。
什么时候X有奇数个因数呢?
X是完全平方数。因为因数是成对出现的,比如36,1和36,9和4,等等。6和6是一对,但是他们是同一个因数。
1-100有多少个完全平方数呢?
十个。1的平方,2的平方,3的平方,。。。10的平方。
所以,最后有十把锁是开着的。