2 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
燈泡只要有一個(gè)因數(shù)就會(huì)被開關(guān)一次
因?yàn)檫M(jìn)行第 i 趟開關(guān)的時(shí)候, 會(huì)把 i 的倍數(shù)的燈開關(guān)
也就是說(shuō), 因數(shù)有 i 的燈泡在此趟會(huì)被開關(guān)
從上面可以推出:
燈泡有奇數(shù)個(gè)因數(shù)最後的結(jié)果會(huì)是亮著的 (開關(guān)奇數(shù)次, 會(huì)是亮的)
又可以歸納出:
完全平方數(shù)的燈泡會(huì)亮著 (因?yàn)橹挥型耆椒綌?shù)有奇數(shù)個(gè)相異因數(shù), 其他都會(huì)有兩兩成對(duì)的相異因數(shù))
如果你要完全模擬這個(gè)狀況的話, 這邊有 Python 的代碼:
lamps = [ False for i in range(100) ]
# print('starts', lamps)
for i in range(1, len(lamps)+1):
for idx, lamp in enumerate(lamps):
if (idx + 1) % i == 0:
lamps[idx] = not lamp
# print(i, lamps)
print(lamps.count(True))
但根據(jù)上面的結(jié)論, 你只要知道燈泡數(shù)內(nèi)有幾個(gè)完全平方數(shù)就好了:
i = 1
while i**2 <= 100:
i += 1
print(i-1)
我回答過(guò)的問(wèn)題: Python-QA
添加回答
舉報(bào)