开灯问题

/**
* 开灯问题
* 有n盏灯 编号1~n 第一个人把所有灯点亮,第2个人按下所有编号为2的倍数的灯开关,
* 第3人按编号为3的灯(其中关的灯被打开 开的灯被熄灭),求最后有多少灯开着?
*/
function light($light){
  $num = 0;
  for($i = 1; $i <= $light; $i++){
    $count = 0;
    for($j = 1; $j <= $i; $j++){
      if($i % $j === 0){
        $count++;
      }
    }
    if($count % 2 !== 0){
      $num++;
    }
  }
  echo $num;
}
light(2015);//44

posted @ 2017-01-03 18:28  cat_crazy  阅读(88)  评论(0编辑  收藏  举报