There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. On the third round, you toggle every third bulb (turning on if it's off or turning off if it's on). For the nth round, you only toggle the last bulb. Find how many bulbs are on after n rounds.

Example:

Given n = 3. 

At first, the three bulbs are [off, off, off].
After first round, the three bulbs are [on, on, on].
After second round, the three bulbs are [on, off, on].
After third round, the three bulbs are [on, off, off]. So you should return 1, because there is only one bulb is on.

如果直接按照题目给出的思路来解答,会导致超时。

观察后可以看出一下的过程,假设我们观察第9个灯泡,这个灯泡会在第1, 3, 9轮中分别被toggle一次,所以最后会保持点亮。第10个灯泡,会在1,2,5,10轮被toggle四次,最后保持熄灭。

所以如果一个数的因子个数是奇数个,那么这个灯泡最后就是点亮的。反之,这个灯泡最后就是熄灭的。显然之后完全平方数才有奇数个因子,因为因子都是成对儿出现的。

所以这个问题其实就是问,<=n的正整数中有多少个完全平方数。也就是<= sqrt(n) 的最大正整数是哪个?

return int(math.sqrt(n))

最新文章

  1. poj 2376 Cleaning Shifts
  2. Qt之C语言类型typedef a[]等
  3. 谷歌 Uncaught SecurityError: Failed to execute &#39;replaceState&#39; on &#39;History 错误
  4. 《第一行代码》(三: Android 百度地图 SDK v3.0.0)
  5. HDU 1848 Fibonacci again and again (斐波那契博弈SG函数)
  6. c# DataGridView操作
  7. php多条件组合查询
  8. redis 记录
  9. Ubuntu环境变量——系统变量和用户变量
  10. 【Xilinx-Petalinux学习】-07-OpenCV的软硬件处理速度对比
  11. 学会数据库读写分离、分表分库——用Mycat,这一篇就够了!
  12. flex盒模型实现头部尾部固定
  13. C#判断画的图形是不是三角形
  14. [译]ASP.NET Core揭秘 - Razor Pages
  15. scikit-learn中机器学习模型比较(逻辑回归与KNN)
  16. Python 使用 matplotlib绘制3D图形
  17. redis 设置分布式锁要避免死锁
  18. tensorflow变量
  19. angularJs中的checkboxs
  20. 力扣(LeetCode) 509. 斐波那契数

热门文章

  1. 叫板OpenStack:用Docker实现私有云
  2. sublime配置文件
  3. 我这样理解js里的this
  4. CUDA2.3-原理之任意长度的矢量求和与用事件来测量性能
  5. Expression Blend4经验分享:自适应布局浅析
  6. [MCSM]随机搜索和EM算法
  7. Xamarin.Android 反复报 Please Download android_m2repository_rxx.zip 的解决办法
  8. [译]用AngularJS构建大型ASP.NET单页应用(三)
  9. DLL丢失修复
  10. viewSub惰性装载器