有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k<=n<=1000
1 function func(n, k) 2 local t = {} -- 定义空表 表示所有灯都是关闭状态 3 for i = 1, k do 4 for j = 1, n do 5 if j % i == 0 then 6 t[j] = not t[j] 7 end 8 end 9 end 10 11 for i = 1, #t do 12 if t[i] then 13 print(i) 14 end 15 end 16 end 17 ------------------------------ 18 example: 19 func(7, 3) -- 1, 5, 6, 7