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