100 盏灯,全部关闭,第一人全部打开(亮)

100 盏灯,全部关闭,第一人全部打开(亮),第二个人隔一个按开关(2、4、6、8、10), 第三个人隔 2 个按开关(3、6、9、12),以此类推,第 100 人路过时有几盏灯亮着?
根据题意简单实现。不知道对不对。。

nums = [1 for _ in range(100)]
mark = 1
i = 2
while i <=100:
    while mark<100:
        if nums[mark]:nums[mark]=0
        else:nums[mark]=1
        mark+=i
    mark = i
    i+=1
count=0
for i in nums:
    if i:count+=1
print(count)

你可能感兴趣的:(100 盏灯,全部关闭,第一人全部打开(亮))