亮灯问题
本題是滴滴出行2016研發工程師筆試題
問題
2015盞燈,一開始全部熄滅,序號分別是1-2015,先把1的倍數序號的燈的開關全部按一次,然后把2的倍數的燈的開關全部按一次,然后把3的倍數的燈的開關全部按一次,以此類推,最后把2015的倍數燈的開關按一次。問最后亮著的燈有多少盞?
解題思路
簡單思考之后發現,一個數如果有偶數個約數,則最后是暗的,如果有奇數個約數,則最后是亮的。所有的質數都有兩個約數,1和自身,所以質數最后一定是暗的。對于合數,有個有意思的情況,就是除了1和本身之外,還有其他約數,那么這些約數有什么規律呢?我們可以發現,它們一般都會成對出現,比如15還可以分解成3和5,20還可以分解成2和10,或者4和5,一旦成對,最后肯定是偶數個約數,所以最后燈還是暗的。但是這里有個特殊情況,就是平方數!因為它們除了可以分解成成對的兩個約數之外,還可以分解成自身乘以自身,這就說明它多出一個約數,比如16,除了分解成1和16,2和8,還可以分解成4和4,所以16的約數有1,2,4,8,16,可以看到它有5個約數,奇數個約數,最后燈是亮的。所以這個問題最后變成2015之內有多少個平方數。1,2,3,4...44,45的平方是2025,就比2015大了,所以最后結果是44。
轉載于:https://www.cnblogs.com/DarrenChan/p/6178266.html
總結
- 上一篇: usbserials
- 下一篇: Android笔记——Matrix