一道数论题目

题目

有100盏灯,编号1-100,初始时都是亮着灯。有一百个小孩,编号1-100。每盏灯对应一个开关,按下时灯亮,再按则灯灭。让这一百个小孩依次按开关,每个小孩只能按其编号倍数的开关。比如1号小孩可以按所有开关,2号小孩只能按编号为偶数的开关,以此类推。请问所有的小孩都按过开关以后(注意:每个小孩都必须按下所有他能按下的灯),哪些灯是亮着的?

答案

编号为平方数的灯是亮着的,1, 4, 9, 。。。 100。

分析

对于任意一盏灯的开关,如果被按了奇数次,那么最终它是亮着的,哪些灯的开关会被按奇数次呢?假设某一盏灯的编号为n,如果n有奇数个约数,那么这盏灯将被按奇数次。

对于任意一个正整数n,它的约数都是成对出现的,也就是说,如果k是n的约数,那么n/k也是n的约数,但是有一个例外,就是当n是平方数,且k=sqrt(n)时,k与n/k是相同的,也就是说平方数的约数有奇数个。所以。。。

原文地址:https://www.cnblogs.com/graphics/p/1749427.html