对一批编号为1-100全部开关朝上(开)的灯进行以下操作:
开关编号凡是1的倍数反方向拨一次开关;若该编号也是2的倍数反方向又拨一次开关;若该编号又是3的倍数反方向又拨一次开关……以此类推一直计算到100为止。
目的:请trace出经过反复开关操作后所有关闭的灯的开关编号。
普通计算方法
var n:int, m:int;
var range:int = 100;
for(var i:int = 1; i <= range; i ++){
n = 1;
while(true){
if(n > i / n){
break;
}
if(i % n == 0){
if(i / n == n){
trace("结果",i);
break;
}
}
n ++;
}
}
一般因数都是一对的,即为偶数个,但是这个平方数的那两个因数都一样,所以只能有奇数个。
var range:int = 1000000000;
var num:int = Math.pow(range,0.5);
for(var i:int = 1; i <= num; i ++){
trace("结果",i * i)
}