桌上有編號1~100的一百盞燈及它們的按鈕開關,
每按一下按鈕,那盞燈如果原本是關著的就會打開,如果原本是打開的就會關掉,
一開始每一盞燈都是關著的,
現在來了一百個人,第一個人去按了編號為1的倍數的所有按鈕,
第二個人去按了編號為2的倍數的所有按鈕,
第三個人去按了編號為3的倍數的所有按鈕,...
依此類推到第一百個人按完後,
請問有哪幾盞燈會是開著的?
編號1, 4, 9, 16, 25, 36, 49, 64, 81, 100。
每一盞燈會在輪到他的因數的時候被按,(如7號燈有因數1跟7,第1跟第7個人會去按),
所以每一盞燈被按的次數就是它的編號的因數數量,
一開始燈是關著的,而最後開著的燈就代表它的按鈕被按了奇數次,
所以這個題目其實就是要找1~100裡面有奇數個因數的數字,
怎麼判斷一個數字有幾個因數呢?
國中以上的網友應該有學過,把數字寫成標準分解式,也就是分解成數個質數的相乘,
如:24=23x3, 36=22x32, ...
然後把每個次方數+1相乘,就是該數的因數個數,
如:24的因數有(3+1)x(1+1)=8個,36的因數有(2+1)x(2+1)=9個,...
假設一個數字的次方數分別為a, b, c, ...,那麼他的因數就有(a+1)(b+1)(c+1)...個,
若要(a+1)(b+1)(c+1)...是奇數,則(a+1), (b+1), (c+1), ...每個都要是奇數才行,
那麼a, b, c,...就每個都要是偶數,
也就是這個數字是一些數的偶數次方相乘的結果,所以它一定是某個數的2次方,
因此,有奇數個因數的數字,就是像12, 22, 32, ...這類的完全平方數,
把1~100裡的完全平方數都列出來,就是答案啦!