有编号为1,2,3,⋯,100的100盏灯和编号为1,2,3,⋯,100的100个操作员.100盏灯初始时都是关闭的,100个操作员顺次操作,其中编号为k的操作员把所有编号为k的倍数的灯改变状态,如编号为3的操作员把编号为3,6,9,⋯,99的灯中关闭的灯打开,打开的灯关闭.那么最后亮着的灯有多少盏?
分析与解 显然编号为k的灯会被编号为k的约数的操作员操作,因此k有奇数个约数时,编号为k的灯最后是亮着的.而考虑到将一个数x的约数按乘积为x的方式配对:对于x的任意一个约数m,xm也是x的约数,所以x的约数成对出现,所以x有奇数个约数,当且仅当存在一对约数,满足m=xm,即x为完全平方数.
综上所述,最后亮着的灯有10盏,其编号分别为1,4,9,16,25,36,49,64,81,100.
注 也可以通过计数原理直接计算一个数的约数个数.首先将这个数进行质因数分解:x=pn11pn22⋯pnkk,
其中pi,i=1,2,⋯,k是质数,ni∈N∗,则x的约数a具有形式a=pm11pm22⋯pmkk,
其中mi=0,1,2,⋯,ni,i=1,2,⋯,k可以取ni+1个不同的数,由分步乘法计数原理知x的约数个数为(n1+1)(n2+1)⋯(nk+1).
如12=22×31的约数个数为(2+1)×(1+1)=6个.
x的约数个数为奇数当且仅当ni均为偶数,此时x为完全平方数.