2 回答

翻过高山走不出你
TA贡献1875条经验 获得超3个赞
燈泡只要有一個因數就會被開關一次
因為進行第 i 趟開關的時候, 會把 i 的倍數的燈開關
也就是說, 因數有 i 的燈泡在此趟會被開關
從上面可以推出:
燈泡有奇數個因數最後的結果會是亮著的 (開關奇數次, 會是亮的)
又可以歸納出:
完全平方數的燈泡會亮著 (因為只有完全平方數有奇數個相異因數, 其他都會有兩兩成對的相異因數)
如果你要完全模擬這個狀況的話, 這邊有 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))
但根據上面的結論, 你只要知道燈泡數內有幾個完全平方數就好了:
i = 1
while i**2 <= 100:
i += 1
print(i-1)
我回答過的問題: Python-QA
添加回答
举报
0/150
提交
取消