问题描述
宾馆里有100个房间,从1-100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间作“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”,…,以后每个服务员都是如此。当第100个服务员来过后,哪几扇门是打开的?(所谓“相反处理”是:原来是开着的门关上,原来关上的门打开。)
输出格式
当第100个服务员来过后,哪几扇门是打开的?输出打开的门的编号,每个数字之间用一个空格隔开。
#宾管找房问题
A=[]#房间号
B=[]#找出的房间号
for i in range(1,101) : #第1个服务员
A.append(1)
for k in range(2,101) : #第2到100个服务员
for j in range(1,101) : #房间号1到100
if j % k == 0 : #服务员的倍数
A[j-1] = -A[j-1] #python索引是从0开始,0到99
for ii in range(0,100) : #房间号
if A[ii] == 1 :
B.append(ii+1)
for x in B :
print(x,end=' ')#含空格输出